home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 02 - 1986 / 02.04 Apr 86.sit / 02.04 Apr 86 / C April 86 / Clock source / Clock.c next >
MacBinary  |  1986-03-02  |  21.1 KB  |  [TEXT/EDIT]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sun Mar 2 17:18:08 1986, modified Sun Mar 2 17:18:08 1986, creator Macintosh Edit, type ASCII, 21085 bytes "Clock.c" , at 0x52dd 348 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[EDIT]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 43 6c 6f 63 6b 2e | 63 00 00 00 00 00 00 00 |..Clock.|c.......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 45 44 49 | 54 01 00 00 00 00 00 00 |.TEXTEDI|T.......|
|00000050| 00 00 00 00 00 52 5d 00 | 00 01 5c 9a 8e 82 20 9a |.....R].|..\... .|
|00000060| 8e 82 20 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.. .....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 af 44 00 00 |........|.....D..|
|00000080| 2f 2a 20 46 69 6c 65 6e | 61 6d 65 3a 20 43 6c 6f |/* Filen|ame: Clo|
|00000090| 63 6b 2e 63 20 20 20 74 | 61 62 73 20 3d 20 32 20 |ck.c t|abs = 2 |
|000000a0| 20 20 6f 72 69 67 69 6e | 61 6c 6c 79 20 63 6f 6d | origin|ally com|
|000000b0| 70 69 6c 65 64 20 77 69 | 74 68 20 4d 61 63 20 43 |piled wi|th Mac C|
|000000c0| 20 34 2e 30 20 2a 2f 0d | 0d 2f 2a 0d 2d 2d 2d 2d | 4.0 */.|./*.----|
|000000d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 43 20 4c |--------|----.C L|
|00000120| 20 4f 20 43 20 4b 20 20 | 20 76 65 72 73 69 6f 6e | O C K | version|
|00000130| 20 30 32 2f 32 36 2f 38 | 36 0d 0d 43 6f 70 79 72 | 02/26/8|6..Copyr|
|00000140| 69 67 68 74 20 28 43 29 | 31 39 38 36 20 62 79 20 |ight (C)|1986 by |
|00000150| 44 6f 6e 20 4d 65 6c 74 | 6f 6e 2c 20 61 6c 6c 20 |Don Melt|on, all |
|00000160| 72 69 67 68 74 73 20 72 | 65 73 65 72 76 65 64 2e |rights r|eserved.|
|00000170| 0d 0d 43 6c 6f 63 6b 20 | 69 73 20 61 20 64 65 73 |..Clock |is a des|
|00000180| 6b 20 61 63 63 65 73 73 | 6f 72 79 20 77 68 69 63 |k access|ory whic|
|00000190| 68 20 6f 70 65 6e 73 20 | 61 20 77 69 6e 64 6f 77 |h opens |a window|
|000001a0| 20 64 69 73 70 6c 61 79 | 69 6e 67 20 74 68 65 20 | display|ing the |
|000001b0| 63 75 72 72 65 6e 74 20 | 74 69 6d 65 20 69 6e 0d |current |time in.|
|000001c0| 68 6f 75 72 73 2c 20 6d | 69 6e 75 74 65 73 20 61 |hours, m|inutes a|
|000001d0| 6e 64 20 73 65 63 6f 6e | 64 73 2e 20 49 74 20 68 |nd secon|ds. It h|
|000001e0| 61 73 20 61 20 6d 65 6e | 75 20 61 6c 6c 6f 77 69 |as a men|u allowi|
|000001f0| 6e 67 20 74 68 65 20 63 | 68 6f 69 63 65 20 6f 66 |ng the c|hoice of|
|00000200| 20 64 69 73 70 6c 61 79 | 69 6e 67 20 74 68 65 0d | display|ing the.|
|00000210| 74 69 6d 65 20 6f 72 20 | 64 61 74 65 2c 20 6f 72 |time or |date, or|
|00000220| 20 61 6e 20 22 41 62 6f | 75 74 c9 22 20 64 69 61 | an "Abo|ut." dia|
|00000230| 6c 6f 67 2e 0d 0d 54 68 | 69 73 20 69 73 20 61 6e |log...Th|is is an|
|00000240| 20 65 78 61 6d 70 6c 65 | 20 6f 66 20 68 6f 77 20 | example| of how |
|00000250| 74 6f 20 63 72 65 61 74 | 65 20 61 20 64 65 73 6b |to creat|e a desk|
|00000260| 20 61 63 63 65 73 73 6f | 72 79 20 77 69 74 68 20 | accesso|ry with |
|00000270| 43 6f 6e 73 75 6c 61 69 | 72 20 4d 61 63 20 43 0d |Consulai|r Mac C.|
|00000280| 77 69 74 68 6f 75 74 20 | 72 65 6c 79 69 6e 67 20 |without |relying |
|00000290| 6f 6e 20 74 68 65 20 44 | 65 73 6b 4d 61 6b 65 72 |on the D|eskMaker|
|000002a0| 20 61 70 70 6c 69 63 61 | 74 69 6f 6e 2e 20 54 68 | applica|tion. Th|
|000002b0| 65 20 73 6f 75 72 63 65 | 20 63 6f 64 65 20 69 73 |e source| code is|
|000002c0| 20 70 72 6f 76 69 64 65 | 64 20 61 73 20 61 0d 72 | provide|d as a.r|
|000002d0| 65 66 65 72 65 6e 63 65 | 20 66 6f 72 20 4d 61 63 |eference| for Mac|
|000002e0| 69 6e 74 6f 73 68 20 73 | 6f 66 74 77 61 72 65 20 |intosh s|oftware |
|000002f0| 64 65 76 65 6c 6f 70 65 | 72 73 2e 20 54 68 65 20 |develope|rs. The |
|00000300| 63 6c 6f 63 6b 20 64 65 | 73 6b 20 61 63 63 65 73 |clock de|sk acces|
|00000310| 73 6f 72 79 20 69 74 73 | 65 6c 66 20 6d 61 79 0d |sory its|elf may.|
|00000320| 62 65 20 66 72 65 65 6c | 79 20 64 69 73 74 72 69 |be freel|y distri|
|00000330| 62 75 74 65 64 20 61 73 | 20 6c 6f 6e 67 20 61 73 |buted as| long as|
|00000340| 20 74 68 65 20 63 6f 70 | 79 72 69 67 68 74 20 6e | the cop|yright n|
|00000350| 6f 74 69 63 65 20 72 65 | 6d 61 69 6e 73 20 69 6e |otice re|mains in|
|00000360| 74 61 63 74 2e 0d 0d 46 | 6f 72 20 69 6e 73 70 69 |tact...F|or inspi|
|00000370| 72 61 74 69 6f 6e 20 61 | 6e 64 20 74 65 63 68 6e |ration a|nd techn|
|00000380| 69 63 61 6c 20 68 65 6c | 70 20 49 27 64 20 6c 69 |ical hel|p I'd li|
|00000390| 6b 65 20 74 6f 20 61 63 | 6b 6e 6f 77 6c 65 64 67 |ke to ac|knowledg|
|000003a0| 65 3a 0d 09 41 6c 61 6e | 20 57 6f 6f 74 74 6f 6e |e:..Alan| Wootton|
|000003b0| 0d 09 42 6f 62 20 44 65 | 6e 6e 79 0d 09 46 72 65 |..Bob De|nny..Fre|
|000003c0| 64 20 48 75 78 68 61 6d | 0d 09 44 61 76 69 64 20 |d Huxham|..David |
|000003d0| 42 75 72 6e 61 72 64 0d | 09 4d 69 6b 65 20 53 63 |Burnard.|.Mike Sc|
|000003e0| 68 75 73 74 65 72 0d 09 | 44 61 76 69 64 20 53 6d |huster..|David Sm|
|000003f0| 69 74 68 0d 09 42 69 6c | 6c 20 44 75 76 61 6c 6c |ith..Bil|l Duvall|
|00000400| 20 61 6e 64 20 4a 61 79 | 20 46 72 69 65 64 6c 61 | and Jay| Friedla|
|00000410| 6e 64 20 6f 66 20 43 6f | 6e 73 75 6c 61 69 72 20 |nd of Co|nsulair |
|00000420| 43 6f 72 70 2e 0d 0d 2d | 2d 20 44 6f 6e 20 4d 65 |Corp...-|- Don Me|
|00000430| 6c 74 6f 6e 2c 20 43 49 | 53 3a 20 37 34 31 36 36 |lton, CI|S: 74166|
|00000440| 2c 31 30 30 36 20 2a 2f | 0d 0d 2f 2a 0d 2d 2d 2d |,1006 */|../*.---|
|00000450| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000460| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 4d 41 |--------|-----.MA|
|000004a0| 43 20 43 20 43 4f 4d 50 | 49 4c 45 52 20 4f 50 54 |C C COMP|ILER OPT|
|000004b0| 49 4f 4e 53 0d 53 65 74 | 75 70 20 41 34 20 61 73 |IONS.Set|up A4 as|
|000004c0| 20 74 68 65 20 69 6e 64 | 65 78 20 74 6f 20 67 6c | the ind|ex to gl|
|000004d0| 6f 62 61 6c 20 76 61 72 | 69 61 62 6c 65 73 20 61 |obal var|iables a|
|000004e0| 6e 64 20 69 6e 68 69 62 | 69 74 20 66 6c 6f 61 74 |nd inhib|it float|
|000004f0| 69 6e 67 20 70 6f 69 6e | 74 2e 20 2a 2f 0d 0d 23 |ing poin|t. */..#|
|00000500| 4f 70 74 69 6f 6e 73 20 | 52 3d 34 20 5a 0d 0d 2f |Options |R=4 Z../|
|00000510| 2a 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*.------|--------|
|00000520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000560| 2d 2d 0d 48 45 41 44 45 | 52 20 46 49 4c 45 53 20 |--.HEADE|R FILES |
|00000570| 2a 2f 0d 0d 23 69 6e 63 | 6c 75 64 65 20 3c 4d 61 |*/..#inc|lude <Ma|
|00000580| 63 44 65 66 73 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |cDefs.h>|.#includ|
|00000590| 65 20 3c 51 75 69 63 6b | 44 72 61 77 2e 68 3e 0d |e <Quick|Draw.h>.|
|000005a0| 23 69 6e 63 6c 75 64 65 | 20 3c 46 6f 6e 74 2e 68 |#include| <Font.h|
|000005b0| 3e 0d 23 69 6e 63 6c 75 | 64 65 20 3c 57 69 6e 64 |>.#inclu|de <Wind|
|000005c0| 6f 77 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |ow.h>.#i|nclude <|
|000005d0| 54 65 78 74 45 64 69 74 | 2e 68 3e 0d 23 69 6e 63 |TextEdit|.h>.#inc|
|000005e0| 6c 75 64 65 20 3c 44 69 | 61 6c 6f 67 2e 68 3e 0d |lude <Di|alog.h>.|
|000005f0| 23 69 6e 63 6c 75 64 65 | 20 3c 4d 65 6e 75 2e 68 |#include| <Menu.h|
|00000600| 3e 0d 23 69 6e 63 6c 75 | 64 65 20 3c 45 76 65 6e |>.#inclu|de <Even|
|00000610| 74 73 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |ts.h>.#i|nclude <|
|00000620| 44 65 76 69 63 65 2e 68 | 3e 0d 23 69 6e 63 6c 75 |Device.h|>.#inclu|
|00000630| 64 65 20 3c 50 61 63 6b | 61 67 65 73 2e 68 3e 0d |de <Pack|ages.h>.|
|00000640| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 44 65 73 6b 41 |.#includ|e <DeskA|
|00000650| 63 63 65 73 73 6f 72 79 | 2e 63 3e 0d 0d 2f 2a 0d |ccessory|.c>../*.|
|00000660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 0d 4d 4f 44 49 46 49 45 | 44 20 44 45 46 49 4e 49 |.MODIFIE|D DEFINI|
|000006c0| 54 49 4f 4e 53 0d 4f 53 | 49 4f 2e 68 20 69 73 20 |TIONS.OS|IO.h is |
|000006d0| 6e 6f 74 20 69 6e 63 6c | 75 64 65 64 20 62 65 63 |not incl|uded bec|
|000006e0| 61 75 73 65 20 74 68 65 | 20 4f 70 50 61 72 61 6d |ause the| OpParam|
|000006f0| 54 79 70 65 20 75 6e 69 | 6f 6e 20 73 74 72 75 63 |Type uni|on struc|
|00000700| 74 75 72 65 20 28 61 73 | 20 64 65 66 69 6e 65 64 |ture (as| defined|
|00000710| 29 20 64 6f 65 73 0d 6e | 6f 74 20 70 72 6f 76 69 |) does.n|ot provi|
|00000720| 64 65 20 61 63 63 65 73 | 73 20 74 6f 20 74 68 65 |de acces|s to the|
|00000730| 20 6d 65 6e 75 20 69 74 | 65 6d 2e 20 49 74 20 69 | menu it|em. It i|
|00000740| 73 20 72 65 64 65 66 69 | 6e 65 64 20 68 65 72 65 |s redefi|ned here|
|00000750| 20 74 6f 20 69 6e 63 6c | 75 64 65 20 6d 65 6e 75 | to incl|ude menu|
|00000760| 44 61 74 61 0d 61 6e 64 | 20 74 68 65 20 65 76 65 |Data.and| the eve|
|00000770| 6e 74 20 70 6f 69 6e 74 | 65 72 2e 0d 0d 2a 2a 2a |nt point|er...***|
|00000780| 20 49 4d 50 4f 52 54 41 | 4e 54 20 2a 2a 2a 20 4f | IMPORTA|NT *** O|
|00000790| 74 68 65 72 20 61 6c 74 | 65 72 6e 61 74 65 20 65 |ther alt|ernate e|
|000007a0| 6c 65 6d 65 6e 74 73 20 | 6f 66 20 74 68 65 20 4f |lements |of the O|
|000007b0| 70 50 61 72 61 6d 54 79 | 70 65 20 75 6e 69 6f 6e |pParamTy|pe union|
|000007c0| 20 73 74 72 75 63 74 75 | 72 65 0d 61 72 65 20 6e | structu|re.are n|
|000007d0| 6f 74 20 64 65 66 69 6e | 65 64 20 68 65 72 65 21 |ot defin|ed here!|
|000007e0| 21 21 0d 0d 54 68 65 20 | 43 6e 74 72 6c 50 61 72 |!!..The |CntrlPar|
|000007f0| 61 6d 20 73 74 72 75 63 | 74 75 72 65 20 61 6c 73 |am struc|ture als|
|00000800| 6f 20 6d 75 73 74 20 62 | 65 20 64 65 66 69 6e 65 |o must b|e define|
|00000810| 64 20 62 65 63 61 75 73 | 65 20 4f 53 49 4f 2e 68 |d becaus|e OSIO.h|
|00000820| 20 69 73 20 6e 6f 74 20 | 69 6e 63 6c 75 64 65 64 | is not |included|
|00000830| 2e 0d 48 6f 77 65 76 65 | 72 2c 20 69 74 20 72 65 |..Howeve|r, it re|
|00000840| 6d 61 69 6e 73 20 75 6e | 61 6c 74 65 72 65 64 2e |mains un|altered.|
|00000850| 20 2a 2f 0d 0d 75 6e 69 | 6f 6e 20 5f 5f 4f 50 0d | */..uni|on __OP.|
|00000860| 09 7b 20 0d 09 73 74 72 | 75 63 74 0d 09 09 7b 0d |.{ ..str|uct...{.|
|00000870| 09 09 73 68 6f 72 74 20 | 6d 65 6e 75 49 44 3b 0d |..short |menuID;.|
|00000880| 09 09 73 68 6f 72 74 20 | 6d 65 6e 75 49 74 65 6d |..short |menuItem|
|00000890| 3b 0d 09 09 7d 20 6d 65 | 6e 75 44 61 74 61 3b 0d |;...} me|nuData;.|
|000008a0| 09 50 74 72 20 65 76 65 | 6e 74 3b 0d 09 7d 3b 0d |.Ptr eve|nt;..};.|
|000008b0| 0d 23 64 65 66 69 6e 65 | 20 4f 70 50 61 72 61 6d |.#define| OpParam|
|000008c0| 54 79 70 65 20 75 6e 69 | 6f 6e 20 5f 5f 4f 50 0d |Type uni|on __OP.|
|000008d0| 0d 73 74 72 75 63 74 20 | 5f 5f 43 50 0d 09 7b 0d |.struct |__CP..{.|
|000008e0| 09 73 74 72 75 63 74 20 | 5f 5f 43 50 20 2a 69 6f |.struct |__CP *io|
|000008f0| 4c 69 6e 6b 3b 0d 09 73 | 68 6f 72 74 20 69 6f 54 |Link;..s|hort ioT|
|00000900| 79 70 65 3b 0d 09 73 68 | 6f 72 74 20 69 6f 54 72 |ype;..sh|ort ioTr|
|00000910| 61 70 3b 0d 09 50 74 72 | 20 69 6f 43 6d 64 41 64 |ap;..Ptr| ioCmdAd|
|00000920| 64 72 3b 0d 09 50 72 6f | 63 50 74 72 20 69 6f 43 |dr;..Pro|cPtr ioC|
|00000930| 6f 6d 70 6c 65 74 69 6f | 6e 3b 0d 09 73 68 6f 72 |ompletio|n;..shor|
|00000940| 74 20 69 6f 52 65 73 75 | 6c 74 3b 0d 09 63 68 61 |t ioResu|lt;..cha|
|00000950| 72 20 2a 69 6f 4e 61 6d | 65 50 74 72 3b 0d 09 73 |r *ioNam|ePtr;..s|
|00000960| 68 6f 72 74 20 69 6f 56 | 52 65 66 4e 75 6d 3b 0d |hort ioV|RefNum;.|
|00000970| 09 73 68 6f 72 74 20 69 | 6f 52 65 66 4e 75 6d 3b |.short i|oRefNum;|
|00000980| 0d 09 73 68 6f 72 74 20 | 43 53 43 6f 64 65 3b 0d |..short |CSCode;.|
|00000990| 09 4f 70 50 61 72 61 6d | 54 79 70 65 20 63 73 70 |.OpParam|Type csp|
|000009a0| 3b 0d 09 7d 3b 0d 0d 23 | 64 65 66 69 6e 65 20 43 |;..};..#|define C|
|000009b0| 6e 74 72 6c 50 61 72 61 | 6d 20 73 74 72 75 63 74 |ntrlPara|m struct|
|000009c0| 20 5f 5f 43 50 0d 0d 2f | 2a 0d 2d 2d 2d 2d 2d 2d | __CP../|*.------|
|000009d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000009f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 44 45 46 49 4e |--------|--.DEFIN|
|00000a20| 49 54 49 4f 4e 53 20 4e | 4f 54 20 49 4e 20 4d 41 |ITIONS N|OT IN MA|
|00000a30| 43 20 43 20 48 45 41 44 | 45 52 20 46 49 4c 45 53 |C C HEAD|ER FILES|
|00000a40| 20 2a 2f 0d 0d 74 79 70 | 65 64 65 66 20 73 74 72 | */..typ|edef str|
|00000a50| 75 63 74 0d 09 7b 0d 09 | 63 68 61 72 20 74 79 70 |uct..{..|char typ|
|00000a60| 65 4e 61 6d 65 5b 34 5d | 3b 0d 09 7d 20 52 65 73 |eName[4]|;..} Res|
|00000a70| 54 79 70 65 3b 0d 0d 2f | 2a 0d 2d 2d 2d 2d 2d 2d |Type;../|*.------|
|00000a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 43 4f 4e 53 54 |--------|--.CONST|
|00000ad0| 41 4e 54 20 44 45 46 49 | 4e 49 54 49 4f 4e 53 20 |ANT DEFI|NITIONS |
|00000ae0| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 4e 49 4c 20 |*/..#def|ine NIL |
|00000af0| 30 0d 23 64 65 66 69 6e | 65 20 46 41 4c 53 45 20 |0.#defin|e FALSE |
|00000b00| 30 0d 23 64 65 66 69 6e | 65 20 54 52 55 45 20 31 |0.#defin|e TRUE 1|
|00000b10| 0d 0d 23 64 65 66 69 6e | 65 20 46 52 45 45 5f 42 |..#defin|e FREE_B|
|00000b20| 4c 4f 43 4b 5f 53 49 5a | 45 20 30 78 31 30 30 30 |LOCK_SIZ|E 0x1000|
|00000b30| 0d 23 64 65 66 69 6e 65 | 20 46 52 4f 4e 54 5f 57 |.#define| FRONT_W|
|00000b40| 49 4e 44 4f 57 20 2d 31 | 0d 0d 23 64 65 66 69 6e |INDOW -1|..#defin|
|00000b50| 65 20 41 42 4f 55 54 5f | 44 4c 4f 47 20 31 0d 23 |e ABOUT_|DLOG 1.#|
|00000b60| 64 65 66 69 6e 65 20 44 | 49 53 50 4c 41 59 5f 49 |define D|ISPLAY_I|
|00000b70| 54 45 4d 20 31 0d 23 64 | 65 66 69 6e 65 20 54 49 |TEM 1.#d|efine TI|
|00000b80| 4d 45 5f 49 54 45 4d 20 | 31 0d 23 64 65 66 69 6e |ME_ITEM |1.#defin|
|00000b90| 65 20 44 41 54 45 5f 49 | 54 45 4d 20 32 0d 23 64 |e DATE_I|TEM 2.#d|
|00000ba0| 65 66 69 6e 65 20 41 42 | 4f 55 54 5f 49 54 45 4d |efine AB|OUT_ITEM|
|00000bb0| 20 34 0d 23 64 65 66 69 | 6e 65 20 43 4c 4f 43 4b | 4.#defi|ne CLOCK|
|00000bc0| 5f 4d 45 4e 55 20 30 0d | 0d 23 64 65 66 69 6e 65 |_MENU 0.|.#define|
|00000bd0| 20 54 49 4d 45 20 30 78 | 30 32 30 43 0d 23 64 65 | TIME 0x|020C.#de|
|00000be0| 66 69 6e 65 20 57 41 4e | 54 5f 53 45 43 4f 4e 44 |fine WAN|T_SECOND|
|00000bf0| 53 20 30 78 30 31 30 30 | 0d 23 64 65 66 69 6e 65 |S 0x0100|.#define|
|00000c00| 20 54 49 4d 45 5f 53 45 | 4c 45 43 54 49 4f 4e 20 | TIME_SE|LECTION |
|00000c10| 32 0d 23 64 65 66 69 6e | 65 20 44 41 54 45 5f 53 |2.#defin|e DATE_S|
|00000c20| 45 4c 45 43 54 49 4f 4e | 20 30 0d 0d 2f 2a 0d 2d |ELECTION| 0../*.-|
|00000c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00000c80| 53 45 54 55 50 20 44 41 | 20 48 45 41 44 45 52 20 |SETUP DA| HEADER |
|00000c90| 41 4e 44 20 47 4c 55 45 | 20 52 4f 55 54 49 4e 45 |AND GLUE| ROUTINE|
|00000ca0| 53 0d 48 65 72 65 20 61 | 6e 20 61 73 73 65 6d 62 |S.Here a|n assemb|
|00000cb0| 6c 79 20 6c 61 6e 67 75 | 61 67 65 20 6d 61 63 72 |ly langu|age macr|
|00000cc0| 6f 20 69 73 20 69 6e 76 | 6f 6b 65 64 20 66 72 6f |o is inv|oked fro|
|00000cd0| 6d 20 44 65 73 6b 41 63 | 63 65 73 73 6f 72 79 2e |m DeskAc|cessory.|
|00000ce0| 63 2e 20 54 68 69 73 20 | 6d 61 63 72 6f 0d 63 6f |c. This |macro.co|
|00000cf0| 6e 66 69 67 75 72 65 73 | 2c 20 61 6e 64 20 74 68 |nfigures|, and th|
|00000d00| 65 6e 20 69 6e 63 6c 75 | 64 65 73 20 44 41 48 65 |en inclu|des DAHe|
|00000d10| 61 64 65 72 2e 61 73 6d | 20 69 6e 20 74 68 65 20 |ader.asm| in the |
|00000d20| 4d 61 63 20 43 20 73 6f | 75 72 63 65 20 66 69 6c |Mac C so|urce fil|
|00000d30| 65 2e 20 54 68 65 20 6d | 61 63 72 6f 0d 72 65 71 |e. The m|acro.req|
|00000d40| 75 69 72 65 73 20 74 68 | 65 20 6e 61 6d 65 73 20 |uires th|e names |
|00000d50| 6f 66 20 74 68 65 20 4d | 61 63 20 43 20 66 75 6e |of the M|ac C fun|
|00000d60| 63 74 69 6f 6e 73 20 66 | 6f 72 20 44 41 20 6f 70 |ctions f|or DA op|
|00000d70| 65 6e 2c 20 63 6f 6e 74 | 72 6f 6c 20 61 6e 64 20 |en, cont|rol and |
|00000d80| 63 6c 6f 73 65 0d 72 6f | 75 74 69 6e 65 73 2c 20 |close.ro|utines, |
|00000d90| 62 65 20 6e 61 6d 65 64 | 20 6f 70 65 6e 2c 20 63 |be named| open, c|
|00000da0| 6f 6e 74 72 6f 6c 20 61 | 6e 64 20 63 6c 6f 73 65 |ontrol a|nd close|
|00000db0| 20 28 70 6c 65 61 73 65 | 20 6e 6f 74 65 20 74 68 | (please| note th|
|00000dc0| 65 73 65 20 61 72 65 20 | 61 6c 6c 20 6c 6f 77 65 |ese are |all lowe|
|00000dd0| 72 63 61 73 65 0d 6c 65 | 74 74 65 72 73 29 2e 20 |rcase.le|tters). |
|00000de0| 54 68 65 20 6d 61 63 72 | 6f 20 64 6f 65 73 20 6e |The macr|o does n|
|00000df0| 6f 74 20 73 75 70 70 6f | 72 74 20 70 72 69 6d 65 |ot suppo|rt prime|
|00000e00| 20 61 6e 64 20 73 74 61 | 74 75 73 20 72 6f 75 74 | and sta|tus rout|
|00000e10| 69 6e 65 73 2c 20 61 6e | 64 20 69 74 20 73 68 6f |ines, an|d it sho|
|00000e20| 75 6c 64 20 62 65 0d 6e | 6f 74 65 64 20 74 68 61 |uld be.n|oted tha|
|00000e30| 74 20 74 68 65 20 64 52 | 65 61 64 45 6e 61 62 6c |t the dR|eadEnabl|
|00000e40| 65 2c 20 64 57 72 69 74 | 65 45 6e 61 62 6c 65 20 |e, dWrit|eEnable |
|00000e50| 61 6e 64 20 64 53 74 61 | 74 45 6e 61 62 6c 65 20 |and dSta|tEnable |
|00000e60| 62 69 74 73 20 6f 66 20 | 74 68 65 20 44 41 20 66 |bits of |the DA f|
|00000e70| 6c 61 67 73 0d 77 69 6c | 6c 20 41 4c 57 41 59 53 |lags.wil|l ALWAYS|
|00000e80| 20 62 65 20 63 6c 65 61 | 72 65 64 20 62 79 20 74 | be clea|red by t|
|00000e90| 68 65 20 6d 61 63 72 6f | 20 65 76 65 6e 20 69 74 |he macro| even it|
|00000ea0| 20 74 68 65 20 66 6c 61 | 67 73 20 70 61 72 61 6d | the fla|gs param|
|00000eb0| 65 74 65 72 20 64 65 66 | 69 6e 65 73 20 74 68 65 |eter def|ines the|
|00000ec0| 6d 20 61 73 0d 73 65 74 | 2e 0d 0d 2a 2a 2a 20 49 |m as.set|...*** I|
|00000ed0| 4d 50 4f 52 54 41 4e 54 | 20 2a 2a 2a 20 49 6e 76 |MPORTANT| *** Inv|
|00000ee0| 6f 6b 65 20 74 68 69 73 | 20 6d 61 63 72 6f 20 42 |oke this| macro B|
|00000ef0| 45 46 4f 52 45 20 64 65 | 63 6c 61 72 69 6e 67 20 |EFORE de|claring |
|00000f00| 61 6e 79 20 67 6c 6f 62 | 61 6c 20 76 61 72 69 61 |any glob|al varia|
|00000f10| 62 6c 65 73 20 6f 72 0d | 64 65 66 69 6e 69 6e 67 |bles or.|defining|
|00000f20| 20 61 6e 79 20 4d 61 63 | 20 43 20 66 75 6e 63 74 | any Mac| C funct|
|00000f30| 69 6f 6e 73 21 21 21 0d | 0d 4d 61 63 72 6f 20 70 |ions!!!.|.Macro p|
|00000f40| 61 72 61 6d 65 74 65 72 | 73 3a 0d 09 31 09 09 4e |arameter|s:..1..N|
|00000f50| 61 6d 65 20 6f 66 20 64 | 65 73 6b 20 61 63 63 65 |ame of d|esk acce|
|00000f60| 73 73 6f 72 79 20 28 65 | 6e 63 6c 6f 73 65 20 74 |ssory (e|nclose t|
|00000f70| 65 78 74 20 69 6e 20 73 | 69 6e 67 6c 65 20 71 75 |ext in s|ingle qu|
|00000f80| 6f 74 65 73 29 0d 09 32 | 09 09 52 65 73 6f 75 72 |otes)..2|..Resour|
|00000f90| 63 65 20 49 44 20 6f 66 | 20 64 65 73 6b 20 61 63 |ce ID of| desk ac|
|00000fa0| 63 65 73 73 6f 72 79 20 | 28 31 32 2d 33 31 20 69 |cessory |(12-31 i|
|00000fb0| 6e 63 6c 75 73 69 76 65 | 29 0d 09 33 09 09 46 6c |nclusive|)..3..Fl|
|00000fc0| 61 67 73 0d 09 34 09 09 | 44 65 6c 61 79 0d 09 35 |ags..4..|Delay..5|
|00000fd0| 09 09 45 76 65 6e 74 20 | 4d 61 73 6b 0d 09 36 09 |..Event |Mask..6.|
|00000fe0| 09 52 65 71 75 65 73 74 | 20 66 6f 72 20 67 6c 6f |.Request| for glo|
|00000ff0| 62 61 6c 20 76 61 72 69 | 61 62 6c 65 20 61 6c 6c |bal vari|able all|
|00001000| 6f 63 61 74 69 6f 6e 3a | 20 4e 65 65 64 47 6c 6f |ocation:| NeedGlo|
|00001010| 62 61 6c 73 20 6f 72 20 | 4e 6f 47 6c 6f 62 61 6c |bals or |NoGlobal|
|00001020| 73 0d 0d 2a 2a 2a 20 49 | 4d 50 4f 52 54 41 4e 54 |s..*** I|MPORTANT|
|00001030| 20 2a 2a 2a 20 49 66 20 | 70 61 72 61 6d 65 74 65 | *** If |paramete|
|00001040| 72 20 36 20 69 73 20 73 | 65 74 20 74 6f 20 4e 65 |r 6 is s|et to Ne|
|00001050| 65 64 47 6c 6f 62 61 6c | 73 2c 20 73 65 74 20 74 |edGlobal|s, set t|
|00001060| 68 65 20 4d 61 63 20 43 | 20 43 6f 6d 70 69 6c 65 |he Mac C| Compile|
|00001070| 72 0d 6f 70 74 69 6f 6e | 20 52 20 65 71 75 61 6c |r.option| R equal|
|00001080| 20 74 6f 20 61 64 64 72 | 65 73 73 20 72 65 67 69 | to addr|ess regi|
|00001090| 73 74 65 72 20 6e 75 6d | 62 65 72 20 34 20 28 23 |ster num|ber 4 (#|
|000010a0| 4f 70 74 69 6f 6e 73 20 | 52 3d 34 29 20 74 6f 20 |Options |R=4) to |
|000010b0| 70 72 6f 70 65 72 6c 79 | 20 69 6e 64 65 78 0d 67 |properly| index.g|
|000010c0| 6c 6f 62 61 6c 20 76 61 | 72 69 61 62 6c 65 73 2e |lobal va|riables.|
|000010d0| 20 49 66 20 74 68 69 73 | 20 69 73 20 6e 6f 74 20 | If this| is not |
|000010e0| 73 65 74 2c 20 61 6c 6c | 20 67 6c 6f 62 61 6c 73 |set, all| globals|
|000010f0| 20 77 69 6c 6c 20 62 65 | 20 69 6e 76 61 6c 69 64 | will be| invalid|
|00001100| 20 61 6e 64 20 61 20 73 | 79 73 74 65 6d 0d 65 72 | and a s|ystem.er|
|00001110| 72 6f 72 20 77 69 6c 6c | 20 70 72 6f 62 61 62 6c |ror will| probabl|
|00001120| 79 20 6f 63 63 75 72 20 | 61 74 20 72 75 6e 74 69 |y occur |at runti|
|00001130| 6d 65 21 21 21 0d 0d 2a | 2a 2a 20 49 4d 50 4f 52 |me!!!..*|** IMPOR|
|00001140| 54 41 4e 54 20 2a 2a 2a | 20 49 66 20 70 61 72 61 |TANT ***| If para|
|00001150| 6d 65 74 65 72 20 36 20 | 69 73 20 73 65 74 20 74 |meter 6 |is set t|
|00001160| 6f 20 4e 65 65 64 47 6c | 6f 62 61 6c 73 2c 20 61 |o NeedGl|obals, a|
|00001170| 6e 64 20 6e 6f 20 67 6c | 6f 62 61 6c 73 20 61 72 |nd no gl|obals ar|
|00001180| 65 0d 64 65 63 6c 61 72 | 65 64 20 69 6e 20 74 68 |e.declar|ed in th|
|00001190| 65 20 66 6f 6c 6c 6f 77 | 69 6e 67 20 73 6f 75 72 |e follow|ing sour|
|000011a0| 63 65 2c 20 61 20 73 79 | 73 74 65 6d 20 65 72 72 |ce, a sy|stem err|
|000011b0| 6f 72 20 6d 61 79 20 6f | 63 63 75 72 20 61 74 20 |or may o|ccur at |
|000011c0| 72 75 6e 74 69 6d 65 21 | 21 21 0d 0d 2a 2a 2a 20 |runtime!|!!..*** |
|000011d0| 49 4d 50 4f 52 54 41 4e | 54 20 2a 2a 2a 20 41 6c |IMPORTAN|T *** Al|
|000011e0| 6c 20 67 6c 6f 62 61 6c | 20 76 61 72 69 61 62 6c |l global| variabl|
|000011f0| 65 73 20 77 69 6c 6c 20 | 62 65 20 69 6e 69 74 69 |es will |be initi|
|00001200| 61 6c 69 7a 65 64 20 74 | 6f 20 7a 65 72 6f 21 21 |alized t|o zero!!|
|00001210| 21 0d 0d 2a 2a 2a 20 49 | 4d 50 4f 52 54 41 4e 54 |!..*** I|MPORTANT|
|00001220| 20 2a 2a 2a 20 41 6e 79 | 20 6f 74 68 65 72 20 72 | *** Any| other r|
|00001230| 65 73 6f 75 72 63 65 73 | 20 69 6e 63 6c 75 64 65 |esources| include|
|00001240| 64 20 61 74 20 6c 69 6e | 6b 20 74 69 6d 65 20 73 |d at lin|k time s|
|00001250| 68 6f 75 6c 64 20 6c 61 | 74 65 72 20 62 65 0d 73 |hould la|ter be.s|
|00001260| 65 74 20 74 6f 20 70 75 | 72 67 65 61 62 6c 65 20 |et to pu|rgeable |
|00001270| 28 65 78 63 65 70 74 20 | 70 6f 73 73 69 62 6c 79 |(except |possibly|
|00001280| 20 4d 45 4e 55 73 29 20 | 75 73 69 6e 67 20 52 65 | MENUs) |using Re|
|00001290| 73 45 64 69 74 2e 20 54 | 68 65 20 6d 61 63 72 6f |sEdit. T|he macro|
|000012a0| 20 70 72 65 73 65 74 73 | 20 74 68 65 0d 44 52 56 | presets| the.DRV|
|000012b0| 52 20 72 65 73 6f 75 72 | 63 65 20 61 73 20 70 75 |R resour|ce as pu|
|000012c0| 72 67 65 61 62 6c 65 2c | 20 62 75 74 20 69 74 20 |rgeable,| but it |
|000012d0| 64 6f 65 73 20 6e 6f 74 | 20 63 6f 72 72 65 63 74 |does not| correct|
|000012e0| 6c 79 20 73 65 74 20 74 | 68 65 20 6e 61 6d 65 20 |ly set t|he name |
|000012f0| 66 6f 72 6d 61 74 20 66 | 6f 72 20 61 0d 44 41 2e |format f|or a.DA.|
|00001300| 20 54 68 69 73 20 69 73 | 20 62 65 63 61 75 73 65 | This is| because|
|00001310| 20 74 68 65 20 61 73 73 | 65 6d 62 6c 79 20 6c 61 | the ass|embly la|
|00001320| 6e 67 75 61 67 65 20 52 | 45 53 4f 55 52 43 45 20 |nguage R|ESOURCE |
|00001330| 64 69 72 65 63 74 69 76 | 65 20 69 6e 20 44 41 48 |directiv|e in DAH|
|00001340| 65 61 64 65 72 2e 61 73 | 6d 0d 77 69 6c 6c 20 6e |eader.as|m.will n|
|00001350| 6f 74 20 61 6c 6c 6f 77 | 20 61 20 6e 75 6c 6c 20 |ot allow| a null |
|00001360| 62 79 74 65 20 74 6f 20 | 70 72 65 63 65 64 65 20 |byte to |precede |
|00001370| 74 68 65 20 6e 61 6d 65 | 2e 20 41 66 74 65 72 20 |the name|. After |
|00001380| 6c 69 6e 6b 69 6e 67 2c | 20 52 65 73 45 64 69 74 |linking,| ResEdit|
|00001390| 20 63 61 6e 20 62 65 0d | 75 73 65 64 20 74 6f 20 | can be.|used to |
|000013a0| 73 65 74 20 74 68 65 20 | 6e 61 6d 65 20 70 72 6f |set the |name pro|
|000013b0| 70 65 72 6c 79 2e 20 48 | 6f 77 65 76 65 72 2c 20 |perly. H|owever, |
|000013c0| 69 66 20 74 68 65 20 44 | 41 20 69 73 20 6d 6f 76 |if the D|A is mov|
|000013d0| 65 64 20 69 6e 74 6f 20 | 61 20 66 69 6c 65 20 75 |ed into |a file u|
|000013e0| 73 69 6e 67 0d 46 6f 6e | 74 2f 44 41 20 4d 6f 76 |sing.Fon|t/DA Mov|
|000013f0| 65 72 2c 20 69 74 73 20 | 6e 61 6d 65 20 77 69 6c |er, its |name wil|
|00001400| 6c 20 62 65 20 61 75 74 | 6f 6d 61 74 69 63 61 6c |l be aut|omatical|
|00001410| 6c 79 20 62 65 20 73 65 | 74 20 74 6f 20 74 68 65 |ly be se|t to the|
|00001420| 20 70 72 6f 70 65 72 20 | 66 6f 72 6d 61 74 2e 20 | proper |format. |
|00001430| 2a 2f 0d 0d 23 61 73 6d | 0d 0d 44 65 73 6b 41 63 |*/..#asm|..DeskAc|
|00001440| 63 65 73 73 6f 72 79 20 | 27 43 6c 6f 63 6b 27 2c |cessory |'Clock',|
|00001450| 31 32 2c 24 32 34 30 30 | 2c 24 30 30 31 30 2c 24 |12,$2400|,$0010,$|
|00001460| 30 31 34 32 2c 4e 65 65 | 64 47 6c 6f 62 61 6c 73 |0142,Nee|dGlobals|
|00001470| 0d 0d 23 65 6e 64 61 73 | 6d 0d 0d 2f 2a 0d 2d 2d |..#endas|m../*.--|
|00001480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 46 |--------|------.F|
|000014d0| 4f 52 57 41 52 44 20 52 | 45 46 45 52 45 4e 43 45 |ORWARD R|EFERENCE|
|000014e0| 53 20 2a 2f 0d 0d 64 6f | 4d 6f 64 61 6c 28 29 3b |S */..do|Modal();|
|000014f0| 0d 0d 2f 2a 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*.---|--------|
|00001500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001540| 2d 2d 2d 2d 2d 0d 47 4c | 4f 42 41 4c 20 56 41 52 |-----.GL|OBAL VAR|
|00001550| 49 41 42 4c 45 53 20 2a | 2f 0d 0d 44 69 61 6c 6f |IABLES *|/..Dialo|
|00001560| 67 50 74 72 20 63 6c 6f | 63 6b 44 69 61 6c 6f 67 |gPtr clo|ckDialog|
|00001570| 3b 0d 73 68 6f 72 74 20 | 6f 77 6e 65 64 49 44 3b |;.short |ownedID;|
|00001580| 0d 4d 65 6e 75 48 61 6e | 64 6c 65 20 68 43 6c 6f |.MenuHan|dle hClo|
|00001590| 63 6b 4d 65 6e 75 3b 0d | 6c 6f 6e 67 20 6f 6c 64 |ckMenu;.|long old|
|000015a0| 44 61 74 65 54 69 6d 65 | 3b 0d 53 74 72 32 35 35 |DateTime|;.Str255|
|000015b0| 20 6f 6c 64 44 54 53 74 | 72 69 6e 67 3b 0d 48 61 | oldDTSt|ring;.Ha|
|000015c0| 6e 64 6c 65 20 68 44 69 | 73 70 6c 61 79 3b 0d 52 |ndle hDi|splay;.R|
|000015d0| 65 63 74 20 64 69 73 70 | 6c 61 79 52 65 63 74 3b |ect disp|layRect;|
|000015e0| 0d 73 68 6f 72 74 20 74 | 65 78 74 4c 65 66 74 2c |.short t|extLeft,|
|000015f0| 20 74 65 78 74 42 61 73 | 65 3b 0d 73 68 6f 72 74 | textBas|e;.short|
|00001600| 20 63 6c 6f 63 6b 46 6f | 72 6d 61 74 2c 20 63 6c | clockFo|rmat, cl|
|00001610| 6f 63 6b 53 65 6c 65 63 | 74 69 6f 6e 3b 0d 73 68 |ockSelec|tion;.sh|
|00001620| 6f 72 74 20 63 6c 6f 63 | 6b 44 69 72 74 79 3b 0d |ort cloc|kDirty;.|
|00001630| 73 68 6f 72 74 20 6f 6c | 64 57 69 64 74 68 3b 0d |short ol|dWidth;.|
|00001640| 0d 2f 2a 0d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |./*.----|--------|
|00001650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001690| 2d 2d 2d 2d 0d 4f 50 45 | 4e 20 43 4c 4f 43 4b 0d |----.OPE|N CLOCK.|
|000016a0| 43 61 6c 63 75 6c 61 74 | 69 6e 67 20 74 68 65 20 |Calculat|ing the |
|000016b0| 6f 77 6e 65 64 49 44 20 | 61 6e 64 20 73 65 74 74 |ownedID |and sett|
|000016c0| 69 6e 67 20 74 68 65 20 | 64 43 74 6c 4d 65 6e 75 |ing the |dCtlMenu|
|000016d0| 20 69 73 20 64 6f 6e 65 | 20 62 65 66 6f 72 65 20 | is done| before |
|000016e0| 63 68 65 63 6b 69 6e 67 | 20 69 66 20 74 68 65 0d |checking| if the.|
|000016f0| 44 41 20 69 73 20 61 6c | 72 65 61 64 79 20 6f 70 |DA is al|ready op|
|00001700| 65 6e 2c 20 62 65 63 61 | 75 73 65 20 61 6e 20 6f |en, beca|use an o|
|00001710| 70 65 6e 20 63 61 6c 6c | 20 63 61 6e 20 63 6f 6d |pen call| can com|
|00001720| 65 20 77 68 69 6c 65 20 | 74 68 65 20 44 41 20 69 |e while |the DA i|
|00001730| 73 20 61 63 74 69 76 65 | 2e 20 54 68 65 0d 44 65 |s active|. The.De|
|00001740| 73 6b 20 4d 61 6e 61 67 | 65 72 20 72 65 73 65 74 |sk Manag|er reset|
|00001750| 73 20 64 43 74 6c 4d 65 | 6e 75 20 74 6f 20 77 68 |s dCtlMe|nu to wh|
|00001760| 61 74 65 76 65 72 20 69 | 73 20 69 6e 20 74 68 65 |atever i|s in the|
|00001770| 20 44 41 20 68 65 61 64 | 65 72 20 28 69 6e 20 74 | DA head|er (in t|
|00001780| 68 69 73 20 63 61 73 65 | 20 7a 65 72 6f 29 0d 65 |his case| zero).e|
|00001790| 76 65 72 79 20 74 69 6d | 65 20 61 20 44 41 20 69 |very tim|e a DA i|
|000017a0| 73 20 6f 70 65 6e 2c 20 | 73 6f 20 64 43 74 6c 4d |s open, |so dCtlM|
|000017b0| 65 6e 75 20 6d 75 73 74 | 20 62 65 20 72 65 69 6e |enu must| be rein|
|000017c0| 69 74 69 61 6c 69 7a 65 | 64 2e 20 49 74 20 69 73 |itialize|d. It is|
|000017d0| 20 61 63 74 75 61 6c 6c | 79 0d 75 6e 65 63 65 73 | actuall|y.uneces|
|000017e0| 73 61 72 79 20 74 6f 20 | 72 65 63 61 6c 63 75 6c |sary to |recalcul|
|000017f0| 61 74 65 20 74 68 65 20 | 6f 77 6e 65 64 49 44 20 |ate the |ownedID |
|00001800| 65 76 65 72 79 20 74 69 | 6d 65 20 6f 70 65 6e 28 |every ti|me open(|
|00001810| 29 20 69 73 20 63 61 6c | 6c 65 64 2e 20 48 6f 77 |) is cal|led. How|
|00001820| 65 76 65 72 2c 0d 70 6c | 61 63 69 6e 67 20 69 74 |ever,.pl|acing it|
|00001830| 20 68 65 72 65 20 73 61 | 76 65 73 20 63 6f 64 65 | here sa|ves code|
|00001840| 20 73 70 61 63 65 2e 0d | 0d 2a 2a 2a 20 49 4d 50 | space..|.*** IMP|
|00001850| 4f 52 54 41 4e 54 20 2a | 2a 2a 20 54 68 65 20 77 |ORTANT *|** The w|
|00001860| 69 6e 64 6f 77 4b 69 6e | 64 20 66 69 65 6c 64 20 |indowKin|d field |
|00001870| 6f 66 20 74 68 65 20 70 | 72 69 6d 61 72 79 20 44 |of the p|rimary D|
|00001880| 41 20 77 69 6e 64 6f 77 | 20 73 68 6f 75 6c 64 20 |A window| should |
|00001890| 61 6c 77 61 79 73 20 62 | 65 0d 73 65 74 20 65 71 |always b|e.set eq|
|000018a0| 75 61 6c 20 74 6f 20 74 | 68 65 20 64 43 74 6c 52 |ual to t|he dCtlR|
|000018b0| 65 66 4e 75 6d 20 66 69 | 65 6c 64 20 6f 66 20 74 |efNum fi|eld of t|
|000018c0| 68 65 20 64 65 76 69 63 | 65 20 63 6f 6e 74 72 6f |he devic|e contro|
|000018d0| 6c 20 65 6e 74 72 79 2e | 20 54 68 65 20 73 79 73 |l entry.| The sys|
|000018e0| 74 65 6d 20 6e 65 65 64 | 73 0d 61 20 6e 65 67 61 |tem need|s.a nega|
|000018f0| 74 69 76 65 20 6e 75 6d | 62 65 72 20 69 6e 20 74 |tive num|ber in t|
|00001900| 68 69 73 20 66 69 65 6c | 64 20 74 6f 20 72 65 63 |his fiel|d to rec|
|00001910| 6f 67 6e 69 7a 65 20 74 | 68 65 20 77 69 6e 64 6f |ognize t|he windo|
|00001920| 77 20 61 73 20 62 65 6c | 6f 6e 67 69 6e 67 20 74 |w as bel|onging t|
|00001930| 6f 20 61 20 44 41 2c 0d | 61 6e 64 20 61 20 73 70 |o a DA,.|and a sp|
|00001940| 65 63 69 66 69 63 20 6e | 75 6d 62 65 72 20 69 64 |ecific n|umber id|
|00001950| 65 6e 74 69 66 69 65 73 | 20 61 20 73 70 65 63 69 |entifies| a speci|
|00001960| 66 69 63 20 44 41 2e 0d | 0d 53 65 74 74 69 6e 67 |fic DA..|.Setting|
|00001970| 20 74 68 65 20 70 6f 72 | 74 20 74 6f 20 74 68 65 | the por|t to the|
|00001980| 20 63 6c 6f 63 6b 20 64 | 69 61 6c 6f 67 20 69 73 | clock d|ialog is|
|00001990| 20 64 6f 6e 65 20 68 65 | 72 65 20 62 65 63 61 75 | done he|re becau|
|000019a0| 73 65 20 74 68 65 20 54 | 65 78 74 4d 6f 64 65 20 |se the T|extMode |
|000019b0| 6f 66 20 74 68 65 0d 67 | 72 61 66 50 6f 72 74 20 |of the.g|rafPort |
|000019c0| 69 73 20 73 65 74 20 74 | 6f 20 73 63 72 43 6f 70 |is set t|o scrCop|
|000019d0| 79 2e 20 47 65 74 74 69 | 6e 67 20 61 6e 64 20 72 |y. Getti|ng and r|
|000019e0| 65 73 74 6f 72 69 6e 67 | 20 74 68 65 20 6f 6c 64 |estoring| the old|
|000019f0| 20 70 6f 72 74 20 69 73 | 20 61 6c 73 6f 20 61 20 | port is| also a |
|00001a00| 67 6f 6f 64 0d 69 64 65 | 61 2c 20 68 6f 77 65 76 |good.ide|a, howev|
|00001a10| 65 72 20 65 76 65 72 79 | 74 68 69 6e 67 20 77 6f |er every|thing wo|
|00001a20| 72 6b 73 20 70 72 6f 70 | 65 72 6c 79 20 69 66 20 |rks prop|erly if |
|00001a30| 74 68 69 73 20 69 73 20 | 6e 6f 74 20 64 6f 6e 65 |this is |not done|
|00001a40| 2e 0d 0d 54 6f 20 6b 65 | 65 70 20 74 68 65 20 44 |...To ke|ep the D|
|00001a50| 41 20 77 69 6e 64 6f 77 | 20 70 6f 69 6e 74 65 72 |A window| pointer|
|00001a60| 20 61 77 61 79 20 66 72 | 6f 6d 20 6f 74 68 65 72 | away fr|om other|
|00001a70| 20 6e 6f 6e 72 65 6c 6f | 63 61 74 61 62 6c 65 20 | nonrelo|catable |
|00001a80| 62 6c 6f 63 6b 73 20 61 | 74 20 74 68 65 0d 62 6f |blocks a|t the.bo|
|00001a90| 74 74 6f 6d 20 6f 66 20 | 74 68 65 20 68 65 61 70 |ttom of |the heap|
|00001aa0| 2c 20 61 20 34 4b 20 74 | 65 6d 70 6f 72 61 72 79 |, a 4K t|emporary|
|00001ab0| 20 73 70 61 63 65 20 69 | 73 20 61 6c 6c 6f 63 61 | space i|s alloca|
|00001ac0| 74 65 64 20 62 65 66 6f | 72 65 20 74 68 65 20 44 |ted befo|re the D|
|00001ad0| 41 20 77 69 6e 64 6f 77 | 0d 70 6f 69 6e 74 65 72 |A window|.pointer|
|00001ae0| 20 69 73 20 61 6c 6c 6f | 63 61 74 65 64 2e 20 4c | is allo|cated. L|
|00001af0| 61 74 65 72 20 69 74 20 | 69 73 20 64 69 73 70 6f |ater it |is dispo|
|00001b00| 73 65 64 20 6f 66 20 6f | 6e 20 61 6e 20 65 72 72 |sed of o|n an err|
|00001b10| 6f 72 20 6f 72 20 65 78 | 69 74 20 6f 66 20 6f 70 |or or ex|it of op|
|00001b20| 65 6e 28 29 2e 0d 54 68 | 69 73 20 70 72 65 76 65 |en()..Th|is preve|
|00001b30| 6e 74 73 20 70 6f 73 73 | 69 62 6c 65 20 68 65 61 |nts poss|ible hea|
|00001b40| 70 20 66 72 61 67 6d 65 | 6e 74 61 74 69 6f 6e 2e |p fragme|ntation.|
|00001b50| 20 41 6e 20 61 70 70 6c | 69 63 61 74 69 6f 6e 20 | An appl|ication |
|00001b60| 63 61 6e 20 61 6c 6c 6f | 63 61 74 65 20 6d 6f 72 |can allo|cate mor|
|00001b70| 65 0d 6e 6f 6e 72 65 6c | 6f 63 61 74 61 62 6c 65 |e.nonrel|ocatable|
|00001b80| 20 62 6c 6f 63 6b 73 20 | 77 68 69 6c 65 20 61 20 | blocks |while a |
|00001b90| 44 41 20 69 73 20 61 63 | 74 69 76 65 2c 20 61 6e |DA is ac|tive, an|
|00001ba0| 64 20 74 68 65 72 65 66 | 6f 72 65 20 63 61 6e 20 |d theref|ore can |
|00001bb0| 63 72 65 61 74 65 20 61 | 20 68 6f 6c 65 20 74 6f |create a| hole to|
|00001bc0| 0d 73 6d 61 6c 6c 20 74 | 6f 20 72 65 61 6c 6c 6f |.small t|o reallo|
|00001bd0| 63 61 74 65 20 77 68 65 | 6e 20 74 68 65 20 44 41 |cate whe|n the DA|
|00001be0| 20 69 73 20 63 6c 6f 73 | 65 64 20 61 6e 64 20 69 | is clos|ed and i|
|00001bf0| 74 73 20 77 69 6e 64 6f | 77 20 70 6f 69 6e 74 65 |ts windo|w pointe|
|00001c00| 72 20 69 73 20 72 65 6d | 6f 76 65 64 0d 66 72 6f |r is rem|oved.fro|
|00001c10| 6d 20 74 68 65 20 68 65 | 61 70 2e 20 54 68 69 73 |m the he|ap. This|
|00001c20| 20 44 41 20 61 6c 73 6f | 20 63 61 75 73 65 73 20 | DA also| causes |
|00001c30| 50 61 63 6b 36 20 74 6f | 20 62 65 20 6c 6f 61 64 |Pack6 to| be load|
|00001c40| 65 64 20 6f 6e 20 74 6f | 20 74 68 65 20 68 65 61 |ed on to| the hea|
|00001c50| 70 2e 20 50 61 63 6b 36 | 0d 69 73 20 61 20 6c 6f |p. Pack6|.is a lo|
|00001c60| 63 6b 65 64 20 72 65 73 | 6f 75 72 63 65 20 77 68 |cked res|ource wh|
|00001c70| 69 63 68 20 77 69 6c 6c | 20 72 65 6d 61 69 6e 20 |ich will| remain |
|00001c80| 6f 6e 20 74 68 65 20 68 | 65 61 70 20 75 6e 74 69 |on the h|eap unti|
|00001c90| 6c 20 74 68 65 20 68 65 | 61 70 20 69 73 0d 72 65 |l the he|ap is.re|
|00001ca0| 69 6e 69 74 69 61 6c 69 | 7a 65 64 2e 0d 0d 54 68 |initiali|zed...Th|
|00001cb0| 65 20 4d 45 4e 55 20 72 | 65 73 6f 75 72 63 65 20 |e MENU r|esource |
|00001cc0| 69 73 20 6d 61 64 65 20 | 75 6e 70 75 72 67 65 61 |is made |unpurgea|
|00001cd0| 62 6c 65 20 68 65 72 65 | 20 62 65 63 61 75 73 65 |ble here| because|
|00001ce0| 20 6f 74 68 65 72 20 65 | 76 65 6e 74 73 20 6d 61 | other e|vents ma|
|00001cf0| 79 20 63 61 75 73 65 20 | 68 65 61 70 0d 63 6f 6d |y cause |heap.com|
|00001d00| 70 61 63 74 69 6f 6e 2c | 20 70 75 72 67 65 20 74 |paction,| purge t|
|00001d10| 68 65 20 6d 65 6e 75 2c | 20 61 6e 64 20 69 6e 76 |he menu,| and inv|
|00001d20| 61 6c 69 64 61 74 65 20 | 74 68 65 20 6d 65 6e 75 |alidate |the menu|
|00001d30| 20 68 61 6e 64 6c 65 2e | 20 54 68 65 20 6d 65 6e | handle.| The men|
|00001d40| 75 20 69 73 20 72 65 6c | 65 61 73 65 64 0d 66 72 |u is rel|eased.fr|
|00001d50| 6f 6d 20 74 68 65 20 68 | 65 61 70 20 64 75 72 69 |om the h|eap duri|
|00001d60| 6e 67 20 74 68 65 20 44 | 41 20 63 6c 6f 73 65 28 |ng the D|A close(|
|00001d70| 29 20 66 75 6e 63 74 69 | 6f 6e 2e 0d 0d 49 74 27 |) functi|on...It'|
|00001d80| 73 20 75 6e 6e 65 63 65 | 73 73 61 72 79 20 66 6f |s unnece|ssary fo|
|00001d90| 72 20 74 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 20 |r this f|unction |
|00001da0| 74 6f 20 64 72 61 77 20 | 74 68 65 20 63 6c 6f 63 |to draw |the cloc|
|00001db0| 6b 20 64 69 73 70 6c 61 | 79 20 6f 72 20 69 6e 73 |k displa|y or ins|
|00001dc0| 65 72 74 20 74 68 65 20 | 63 6c 6f 63 6b 0d 6d 65 |ert the |clock.me|
|00001dd0| 6e 75 20 62 65 63 61 75 | 73 65 20 75 70 64 61 74 |nu becau|se updat|
|00001de0| 65 20 61 6e 64 20 61 63 | 74 69 76 61 74 65 20 65 |e and ac|tivate e|
|00001df0| 76 65 6e 74 73 20 61 72 | 65 20 67 65 6e 65 72 61 |vents ar|e genera|
|00001e00| 74 65 64 20 77 68 65 6e | 65 76 65 72 20 61 20 44 |ted when|ever a D|
|00001e10| 41 20 69 73 20 66 69 72 | 73 74 0d 6f 70 65 6e 65 |A is fir|st.opene|
|00001e20| 64 2e 20 2a 2f 0d 0d 0d | 73 68 6f 72 74 20 6f 70 |d. */...|short op|
|00001e30| 65 6e 28 70 62 2c 20 64 | 63 65 29 0d 09 43 6e 74 |en(pb, d|ce)..Cnt|
|00001e40| 72 6c 50 61 72 61 6d 20 | 2a 70 62 3b 0d 09 44 43 |rlParam |*pb;..DC|
|00001e50| 45 6e 74 72 79 20 2a 64 | 63 65 3b 0d 09 7b 0d 09 |Entry *d|ce;..{..|
|00001e60| 47 72 61 66 50 74 72 20 | 6f 6c 64 50 6f 72 74 3b |GrafPtr |oldPort;|
|00001e70| 0d 09 50 74 72 20 66 72 | 65 65 42 6c 6f 63 6b 3b |..Ptr fr|eeBlock;|
|00001e80| 0d 09 52 65 73 54 79 70 | 65 20 64 75 6d 6d 79 54 |..ResTyp|e dummyT|
|00001e90| 79 70 65 3b 0d 09 46 6f | 6e 74 49 6e 66 6f 20 74 |ype;..Fo|ntInfo t|
|00001ea0| 68 65 46 6f 6e 74 49 6e | 66 6f 3b 0d 0d 09 6f 77 |heFontIn|fo;...ow|
|00001eb0| 6e 65 64 49 44 20 3d 20 | 30 78 43 30 30 30 20 2d |nedID = |0xC000 -|
|00001ec0| 20 28 33 32 20 2a 20 28 | 31 20 2b 20 64 63 65 2d | (32 * (|1 + dce-|
|00001ed0| 3e 64 43 74 6c 52 65 66 | 4e 75 6d 29 29 3b 0d 09 |>dCtlRef|Num));..|
|00001ee0| 64 63 65 2d 3e 64 43 74 | 6c 4d 65 6e 75 20 3d 20 |dce->dCt|lMenu = |
|00001ef0| 6f 77 6e 65 64 49 44 3b | 0d 0d 09 69 66 20 28 21 |ownedID;|...if (!|
|00001f00| 64 63 65 2d 3e 64 43 74 | 6c 57 69 6e 64 6f 77 29 |dce->dCt|lWindow)|
|00001f10| 0d 09 09 7b 0d 09 09 47 | 65 74 50 6f 72 74 28 26 |...{...G|etPort(&|
|00001f20| 6f 6c 64 50 6f 72 74 29 | 3b 0d 0d 09 09 69 66 20 |oldPort)|;....if |
|00001f30| 28 21 28 66 72 65 65 42 | 6c 6f 63 6b 20 3d 20 4e |(!(freeB|lock = N|
|00001f40| 65 77 50 74 72 28 46 52 | 45 45 5f 42 4c 4f 43 4b |ewPtr(FR|EE_BLOCK|
|00001f50| 5f 53 49 5a 45 29 29 29 | 0d 09 09 09 72 65 74 75 |_SIZE)))|....retu|
|00001f60| 72 6e 20 2d 31 3b 0d 0d | 09 09 69 66 20 28 21 28 |rn -1;..|..if (!(|
|00001f70| 63 6c 6f 63 6b 44 69 61 | 6c 6f 67 20 3d 20 28 44 |clockDia|log = (D|
|00001f80| 69 61 6c 6f 67 50 74 72 | 29 20 4e 65 77 50 74 72 |ialogPtr|) NewPtr|
|00001f90| 28 73 69 7a 65 6f 66 28 | 44 69 61 6c 6f 67 52 65 |(sizeof(|DialogRe|
|00001fa0| 63 6f 72 64 29 29 29 29 | 0d 09 09 09 7b 0d 09 09 |cord))))|....{...|
|00001fb0| 09 44 69 73 70 6f 73 50 | 74 72 28 66 72 65 65 42 |.DisposP|tr(freeB|
|00001fc0| 6c 6f 63 6b 29 3b 0d 09 | 09 09 72 65 74 75 72 6e |lock);..|..return|
|00001fd0| 20 2d 31 3b 0d 09 09 09 | 7d 0d 09 09 63 6c 6f 63 | -1;....|}...cloc|
|00001fe0| 6b 44 69 61 6c 6f 67 20 | 3d 20 47 65 74 4e 65 77 |kDialog |= GetNew|
|00001ff0| 44 69 61 6c 6f 67 28 6f | 77 6e 65 64 49 44 2c 20 |Dialog(o|wnedID, |
|00002000| 63 6c 6f 63 6b 44 69 61 | 6c 6f 67 2c 20 46 52 4f |clockDia|log, FRO|
|00002010| 4e 54 5f 57 49 4e 44 4f | 57 29 3b 0d 09 09 28 28 |NT_WINDO|W);...((|
|00002020| 57 69 6e 64 6f 77 50 65 | 65 6b 29 20 63 6c 6f 63 |WindowPe|ek) cloc|
|00002030| 6b 44 69 61 6c 6f 67 29 | 2d 3e 77 69 6e 64 6f 77 |kDialog)|->window|
|00002040| 4b 69 6e 64 20 3d 20 64 | 63 65 2d 3e 64 43 74 6c |Kind = d|ce->dCtl|
|00002050| 52 65 66 4e 75 6d 3b 0d | 09 09 64 63 65 2d 3e 64 |RefNum;.|..dce->d|
|00002060| 43 74 6c 57 69 6e 64 6f | 77 20 3d 20 28 50 74 72 |CtlWindo|w = (Ptr|
|00002070| 29 20 63 6c 6f 63 6b 44 | 69 61 6c 6f 67 3b 0d 09 |) clockD|ialog;..|
|00002080| 09 53 65 74 50 6f 72 74 | 28 28 47 72 61 66 50 74 |.SetPort|((GrafPt|
|00002090| 72 29 20 63 6c 6f 63 6b | 44 69 61 6c 6f 67 29 3b |r) clock|Dialog);|
|000020a0| 0d 09 09 54 65 78 74 4d | 6f 64 65 28 73 72 63 43 |...TextM|ode(srcC|
|000020b0| 6f 70 79 29 3b 0d 09 0d | 09 09 68 43 6c 6f 63 6b |opy);...|..hClock|
|000020c0| 4d 65 6e 75 20 3d 20 47 | 65 74 4d 65 6e 75 28 6f |Menu = G|etMenu(o|
|000020d0| 77 6e 65 64 49 44 29 3b | 0d 09 09 48 4e 6f 50 75 |wnedID);|...HNoPu|
|000020e0| 72 67 65 28 68 43 6c 6f | 63 6b 4d 65 6e 75 29 3b |rge(hClo|ckMenu);|
|000020f0| 0d 0d 09 09 47 65 74 44 | 49 74 65 6d 28 63 6c 6f |....GetD|Item(clo|
|00002100| 63 6b 44 69 61 6c 6f 67 | 2c 20 44 49 53 50 4c 41 |ckDialog|, DISPLA|
|00002110| 59 5f 49 54 45 4d 2c 20 | 26 64 75 6d 6d 79 54 79 |Y_ITEM, |&dummyTy|
|00002120| 70 65 2c 20 26 68 44 69 | 73 70 6c 61 79 2c 20 26 |pe, &hDi|splay, &|
|00002130| 64 69 73 70 6c 61 79 52 | 65 63 74 29 3b 0d 09 09 |displayR|ect);...|
|00002140| 47 65 74 46 6f 6e 74 49 | 6e 66 6f 28 26 74 68 65 |GetFontI|nfo(&the|
|00002150| 46 6f 6e 74 49 6e 66 6f | 29 3b 0d 09 09 74 65 78 |FontInfo|);...tex|
|00002160| 74 4c 65 66 74 20 3d 20 | 64 69 73 70 6c 61 79 52 |tLeft = |displayR|
|00002170| 65 63 74 2e 6c 65 66 74 | 3b 0d 09 09 74 65 78 74 |ect.left|;...text|
|00002180| 42 61 73 65 20 3d 20 64 | 69 73 70 6c 61 79 52 65 |Base = d|isplayRe|
|00002190| 63 74 2e 74 6f 70 20 2b | 20 74 68 65 46 6f 6e 74 |ct.top +| theFont|
|000021a0| 49 6e 66 6f 2e 61 73 63 | 65 6e 74 3b 0d 09 09 63 |Info.asc|ent;...c|
|000021b0| 6c 6f 63 6b 46 6f 72 6d | 61 74 20 3d 20 57 41 4e |lockForm|at = WAN|
|000021c0| 54 5f 53 45 43 4f 4e 44 | 53 3b 0d 09 09 63 6c 6f |T_SECOND|S;...clo|
|000021d0| 63 6b 53 65 6c 65 63 74 | 69 6f 6e 20 3d 20 54 49 |ckSelect|ion = TI|
|000021e0| 4d 45 5f 53 45 4c 45 43 | 54 49 4f 4e 3b 0d 0d 09 |ME_SELEC|TION;...|
|000021f0| 09 44 69 73 70 6f 73 50 | 74 72 28 66 72 65 65 42 |.DisposP|tr(freeB|
|00002200| 6c 6f 63 6b 29 3b 0d 0d | 09 09 53 65 74 50 6f 72 |lock);..|..SetPor|
|00002210| 74 28 6f 6c 64 50 6f 72 | 74 29 3b 0d 09 09 7d 0d |t(oldPor|t);...}.|
|00002220| 09 72 65 74 75 72 6e 20 | 30 3b 0d 09 7d 0d 0d 2f |.return |0;..}../|
|00002230| 2a 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*.------|--------|
|00002240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002280| 2d 2d 0d 43 4c 4f 53 45 | 20 43 4c 4f 43 4b 20 0d |--.CLOSE| CLOCK .|
|00002290| 54 68 65 20 4d 45 4e 55 | 20 72 65 73 6f 75 72 63 |The MENU| resourc|
|000022a0| 65 20 6d 75 73 74 20 62 | 65 20 72 65 6c 65 61 73 |e must b|e releas|
|000022b0| 65 64 20 66 72 6f 6d 20 | 74 68 65 20 68 65 61 70 |ed from |the heap|
|000022c0| 20 68 65 72 65 20 62 65 | 63 61 75 73 65 20 61 6e | here be|cause an|
|000022d0| 20 65 72 72 6f 72 20 77 | 69 6c 6c 0d 61 6c 77 61 | error w|ill.alwa|
|000022e0| 79 73 20 6f 63 63 75 72 | 20 64 75 72 69 6e 67 20 |ys occur| during |
|000022f0| 74 68 65 20 6e 65 78 74 | 20 63 61 6c 6c 20 74 6f |the next| call to|
|00002300| 20 47 65 74 4d 65 6e 75 | 28 29 20 69 6e 20 74 68 | GetMenu|() in th|
|00002310| 65 20 6f 70 65 6e 28 29 | 20 66 75 6e 63 74 69 6f |e open()| functio|
|00002320| 6e 20 28 77 68 65 6e 20 | 74 68 65 0d 44 41 20 69 |n (when |the.DA i|
|00002330| 73 20 73 65 6c 65 63 74 | 65 64 20 61 67 61 69 6e |s select|ed again|
|00002340| 20 66 72 6f 6d 20 74 68 | 65 20 41 70 70 6c 65 20 | from th|e Apple |
|00002350| 6d 65 6e 75 29 20 4f 4e | 4c 59 20 64 75 72 69 6e |menu) ON|LY durin|
|00002360| 67 20 74 68 65 20 6f 70 | 65 72 61 74 69 6f 6e 20 |g the op|eration |
|00002370| 6f 66 20 46 69 6e 64 65 | 72 0d 76 65 72 73 69 6f |of Finde|r.versio|
|00002380| 6e 73 20 35 2e 30 20 61 | 6e 64 20 61 62 6f 76 65 |ns 5.0 a|nd above|
|00002390| 20 6f 6e 20 74 68 65 20 | 6f 6c 64 65 72 20 36 34 | on the |older 64|
|000023a0| 4b 20 52 4f 4d 73 2e 20 | 41 73 20 6f 66 20 74 68 |K ROMs. |As of th|
|000023b0| 69 73 20 77 72 69 74 69 | 6e 67 2c 20 6e 6f 20 6f |is writi|ng, no o|
|000023c0| 74 68 65 72 0d 61 70 70 | 6c 69 63 61 74 69 6f 6e |ther.app|lication|
|000023d0| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 73 20 70 72 | environ|ments pr|
|000023e0| 6f 64 75 63 65 20 74 68 | 65 20 65 72 72 6f 72 2e |oduce th|e error.|
|000023f0| 20 4e 6f 72 6d 61 6c 6c | 79 2c 20 74 68 65 20 4d | Normall|y, the M|
|00002400| 45 4e 55 20 72 65 73 6f | 75 72 63 65 20 77 6f 75 |ENU reso|urce wou|
|00002410| 6c 64 0d 6f 6e 6c 79 20 | 6e 65 65 64 20 74 6f 20 |ld.only |need to |
|00002420| 62 65 20 6d 61 64 65 20 | 70 75 72 67 65 61 62 6c |be made |purgeabl|
|00002430| 65 2e 0d 0d 57 68 65 6e | 20 47 65 74 4d 65 6e 75 |e...When| GetMenu|
|00002440| 28 29 20 69 73 20 69 6e | 76 6f 6b 65 64 20 69 74 |() is in|voked it|
|00002450| 20 63 61 6c 6c 73 20 73 | 65 76 65 72 61 6c 20 6f | calls s|everal o|
|00002460| 74 68 65 72 20 52 4f 4d | 20 72 6f 75 74 69 6e 65 |ther ROM| routine|
|00002470| 73 20 69 6e 63 6c 75 64 | 69 6e 67 0d 47 65 74 52 |s includ|ing.GetR|
|00002480| 65 73 6f 75 72 63 65 28 | 29 2c 20 20 43 6f 75 6e |esource(|), Coun|
|00002490| 74 54 79 70 65 73 28 29 | 2c 20 43 61 6c 63 4d 65 |tTypes()|, CalcMe|
|000024a0| 6e 75 53 69 7a 65 28 29 | 2c 20 47 65 74 49 74 65 |nuSize()|, GetIte|
|000024b0| 6d 28 29 2c 20 4d 65 6e | 75 53 65 6c 65 63 74 28 |m(), Men|uSelect(|
|000024c0| 29 20 61 6e 64 0d 4c 6f | 61 64 52 65 73 6f 75 72 |) and.Lo|adResour|
|000024d0| 63 65 28 29 2e 20 44 75 | 72 69 6e 67 20 74 68 65 |ce(). Du|ring the|
|000024e0| 20 63 6f 6e 64 69 74 69 | 6f 6e 73 20 6d 65 6e 74 | conditi|ons ment|
|000024f0| 69 6f 6e 65 64 20 61 62 | 6f 76 65 2c 20 6f 6e 20 |ioned ab|ove, on |
|00002500| 65 78 69 74 20 6f 66 20 | 47 65 74 49 74 65 6d 28 |exit of |GetItem(|
|00002510| 29 2c 20 61 0d 4a 53 52 | 20 28 41 30 29 20 69 6e |), a.JSR| (A0) in|
|00002520| 73 74 72 75 63 74 69 6f | 6e 20 77 69 6c 6c 20 70 |structio|n will p|
|00002530| 72 6f 64 75 63 65 20 61 | 6e 20 61 64 64 72 65 73 |roduce a|n addres|
|00002540| 73 20 65 72 72 6f 72 20 | 61 74 20 61 20 6c 6f 63 |s error |at a loc|
|00002550| 61 74 69 6f 6e 20 61 62 | 6f 76 65 20 74 68 65 20 |ation ab|ove the |
|00002560| 36 34 4b 0d 52 4f 4d 20 | 69 66 20 74 68 65 20 44 |64K.ROM |if the D|
|00002570| 41 20 6d 65 6e 75 20 69 | 73 20 6f 6e 20 74 68 65 |A menu i|s on the|
|00002580| 20 68 65 61 70 2e 20 54 | 68 69 73 20 69 73 20 62 | heap. T|his is b|
|00002590| 65 63 61 75 73 65 20 74 | 68 65 20 6e 65 77 65 72 |ecause t|he newer|
|000025a0| 20 46 69 6e 64 65 72 73 | 20 6a 75 6d 70 0d 64 69 | Finders| jump.di|
|000025b0| 72 65 63 74 6c 79 20 69 | 6e 20 61 6e 64 20 6f 75 |rectly i|n and ou|
|000025c0| 74 20 74 68 65 20 31 32 | 38 4b 20 52 4f 4d 73 20 |t the 12|8K ROMs |
|000025d0| 61 74 20 61 62 73 6f 6c | 75 74 65 20 6c 6f 63 61 |at absol|ute loca|
|000025e0| 74 69 6f 6e 73 2c 20 73 | 6f 20 74 68 65 79 20 65 |tions, s|o they e|
|000025f0| 78 70 65 63 74 20 52 4f | 4d 20 63 6f 64 65 0d 61 |xpect RO|M code.a|
|00002600| 74 20 73 70 65 63 69 66 | 69 63 20 6d 65 6d 6f 72 |t specif|ic memor|
|00002610| 79 20 61 64 64 72 65 73 | 73 65 73 2e 0d 0d 41 70 |y addres|ses...Ap|
|00002620| 70 61 72 65 6e 74 6c 79 | 2c 20 69 66 20 74 68 65 |parently|, if the|
|00002630| 20 44 41 20 6d 65 6e 75 | 20 69 73 20 4e 4f 54 20 | DA menu| is NOT |
|00002640| 6f 6e 20 74 68 65 20 68 | 65 61 70 20 77 68 65 6e |on the h|eap when|
|00002650| 20 47 65 74 4d 65 6e 75 | 28 29 20 69 73 20 69 6e | GetMenu|() is in|
|00002660| 76 6f 6b 65 64 20 64 75 | 72 69 6e 67 0d 74 68 69 |voked du|ring.thi|
|00002670| 73 20 65 6e 76 69 72 6f | 6e 6d 65 6e 74 2c 20 6e |s enviro|nment, n|
|00002680| 6f 20 65 72 72 6f 72 20 | 77 69 6c 6c 20 6f 63 63 |o error |will occ|
|00002690| 75 72 2e 20 49 74 20 73 | 68 6f 75 6c 64 20 62 65 |ur. It s|hould be|
|000026a0| 20 6e 6f 74 65 64 20 74 | 68 61 74 20 41 70 70 6c | noted t|hat Appl|
|000026b0| 65 20 43 6f 6d 70 75 74 | 65 72 0d 64 6f 65 73 20 |e Comput|er.does |
|000026c0| 6e 6f 74 20 72 65 63 6f | 6d 65 6e 64 20 75 73 69 |not reco|mend usi|
|000026d0| 6e 67 20 74 68 65 20 6e | 65 77 65 72 20 46 69 6e |ng the n|ewer Fin|
|000026e0| 64 65 72 73 20 6f 6e 20 | 74 68 65 20 6f 6c 64 65 |ders on |the olde|
|000026f0| 72 20 52 4f 4d 73 2e 20 | 48 6f 77 65 76 65 72 2c |r ROMs. |However,|
|00002700| 20 73 69 6e 63 65 20 6d | 61 6e 79 0d 75 73 65 72 | since m|any.user|
|00002710| 73 20 68 61 76 65 20 48 | 44 32 30 73 20 68 6f 6f |s have H|D20s hoo|
|00002720| 6b 65 64 20 74 6f 20 74 | 68 65 69 72 20 6f 6c 64 |ked to t|heir old|
|00002730| 65 72 20 6d 61 63 68 69 | 6e 65 73 2c 20 74 68 65 |er machi|nes, the|
|00002740| 79 20 6d 75 73 74 20 75 | 73 65 20 74 68 65 20 6e |y must u|se the n|
|00002750| 65 77 65 72 0d 46 69 6e | 64 65 72 73 2e 20 49 74 |ewer.Fin|ders. It|
|00002760| 20 69 73 20 61 20 67 6f | 6f 64 20 69 64 65 61 20 | is a go|od idea |
|00002770| 74 6f 20 70 72 65 70 61 | 72 65 20 66 6f 72 20 74 |to prepa|re for t|
|00002780| 68 65 73 65 20 63 69 72 | 63 75 6d 73 74 61 6e 63 |hese cir|cumstanc|
|00002790| 65 73 20 73 69 6e 63 65 | 20 74 68 65 72 65 20 69 |es since| there i|
|000027a0| 73 20 6e 6f 0d 67 61 69 | 6e 20 69 6e 20 63 6f 64 |s no.gai|n in cod|
|000027b0| 65 20 73 70 61 63 65 2c | 20 61 6e 64 20 74 68 65 |e space,| and the|
|000027c0| 20 6f 6e 6c 79 20 6f 70 | 65 72 61 74 69 6f 6e 61 | only op|erationa|
|000027d0| 6c 20 64 69 66 66 65 72 | 65 6e 63 65 20 69 73 20 |l differ|ence is |
|000027e0| 74 68 61 74 20 74 68 65 | 20 4d 45 4e 55 0d 72 65 |that the| MENU.re|
|000027f0| 73 6f 75 72 63 65 20 6d | 75 73 74 20 62 65 20 72 |source m|ust be r|
|00002800| 65 6c 6f 61 64 65 64 20 | 65 76 65 72 79 20 74 69 |eloaded |every ti|
|00002810| 6d 65 20 74 68 65 20 44 | 41 20 69 73 20 6f 70 65 |me the D|A is ope|
|00002820| 6e 65 64 2e 20 2a 2f 0d | 0d 73 68 6f 72 74 20 63 |ned. */.|.short c|
|00002830| 6c 6f 73 65 28 70 62 2c | 20 64 63 65 29 0d 09 43 |lose(pb,| dce)..C|
|00002840| 6e 74 72 6c 50 61 72 61 | 6d 20 2a 70 62 3b 0d 09 |ntrlPara|m *pb;..|
|00002850| 44 43 45 6e 74 72 79 20 | 2a 64 63 65 3b 0d 09 7b |DCEntry |*dce;..{|
|00002860| 0d 0d 09 64 65 41 63 74 | 69 76 61 74 65 28 64 63 |...deAct|ivate(dc|
|00002870| 65 29 3b 0d 09 52 65 6c | 65 61 73 65 52 65 73 6f |e);..Rel|easeReso|
|00002880| 75 72 63 65 28 68 43 6c | 6f 63 6b 4d 65 6e 75 29 |urce(hCl|ockMenu)|
|00002890| 3b 0d 09 44 69 73 70 6f | 73 65 44 69 61 6c 6f 67 |;..Dispo|seDialog|
|000028a0| 28 63 6c 6f 63 6b 44 69 | 61 6c 6f 67 29 3b 0d 09 |(clockDi|alog);..|
|000028b0| 64 63 65 2d 3e 64 43 74 | 6c 57 69 6e 64 6f 77 20 |dce->dCt|lWindow |
|000028c0| 3d 20 4e 49 4c 3b 0d 0d | 09 72 65 74 75 72 6e 20 |= NIL;..|.return |
|000028d0| 30 3b 0d 09 7d 0d 0d 2f | 2a 0d 2d 2d 2d 2d 2d 2d |0;..}../|*.------|
|000028e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000028f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 43 4f 4e 54 52 |--------|--.CONTR|
|00002930| 4f 4c 20 43 4c 4f 43 4b | 0d 49 74 20 73 68 6f 75 |OL CLOCK|.It shou|
|00002940| 6c 64 20 62 65 20 6e 6f | 74 65 64 20 74 68 61 74 |ld be no|ted that|
|00002950| 2c 20 63 6f 6e 74 72 61 | 72 79 20 74 6f 20 70 6f |, contra|ry to po|
|00002960| 70 75 6c 61 72 20 70 72 | 61 63 74 69 63 65 2c 20 |pular pr|actice, |
|00002970| 69 74 27 73 20 75 6e 6e | 65 63 65 73 73 61 72 79 |it's unn|ecessary|
|00002980| 20 74 6f 20 63 68 65 63 | 6b 0d 74 68 65 20 64 43 | to chec|k.the dC|
|00002990| 74 6c 57 69 6e 64 6f 77 | 20 66 69 65 6c 64 20 6f |tlWindow| field o|
|000029a0| 66 20 74 68 65 20 64 65 | 76 69 63 65 20 63 6f 6e |f the de|vice con|
|000029b0| 74 72 6f 6c 20 65 6e 74 | 72 79 20 74 6f 20 64 65 |trol ent|ry to de|
|000029c0| 74 65 72 6d 69 6e 65 20 | 77 68 65 74 68 65 72 20 |termine |whether |
|000029d0| 74 68 65 20 44 41 0d 65 | 78 69 73 74 73 20 64 75 |the DA.e|xists du|
|000029e0| 72 69 6e 67 20 63 6f 6e | 74 72 6f 6c 28 29 2e 0d |ring con|trol()..|
|000029f0| 0d 53 65 74 74 69 6e 67 | 20 74 68 65 20 70 6f 72 |.Setting| the por|
|00002a00| 74 20 74 6f 20 74 68 65 | 20 63 6c 6f 63 6b 20 64 |t to the| clock d|
|00002a10| 69 61 6c 6f 67 20 69 73 | 20 64 6f 6e 65 20 69 6e |ialog is| done in|
|00002a20| 20 64 72 61 77 44 69 73 | 70 6c 61 79 28 29 20 72 | drawDis|play() r|
|00002a30| 61 74 68 65 72 20 74 68 | 61 6e 20 68 65 72 65 2c |ather th|an here,|
|00002a40| 0d 73 69 6e 63 65 20 64 | 72 61 77 44 69 73 70 6c |.since d|rawDispl|
|00002a50| 61 79 28 29 20 69 73 20 | 74 68 65 20 6f 6e 6c 79 |ay() is |the only|
|00002a60| 20 72 6f 75 74 69 6e 65 | 20 64 72 61 77 69 6e 67 | routine| drawing|
|00002a70| 20 61 6e 79 74 68 69 6e | 67 20 69 6e 20 74 68 65 | anythin|g in the|
|00002a80| 20 67 72 61 66 50 6f 72 | 74 2e 20 2a 2f 0d 0d 73 | grafPor|t. */..s|
|00002a90| 68 6f 72 74 20 63 6f 6e | 74 72 6f 6c 28 70 62 2c |hort con|trol(pb,|
|00002aa0| 20 64 63 65 29 0d 09 43 | 6e 74 72 6c 50 61 72 61 | dce)..C|ntrlPara|
|00002ab0| 6d 20 2a 70 62 3b 0d 09 | 44 43 45 6e 74 72 79 20 |m *pb;..|DCEntry |
|00002ac0| 2a 64 63 65 3b 0d 09 7b | 0d 0d 09 73 77 69 74 63 |*dce;..{|...switc|
|00002ad0| 68 20 28 70 62 2d 3e 43 | 53 43 6f 64 65 29 0d 09 |h (pb->C|SCode)..|
|00002ae0| 09 7b 0d 09 09 63 61 73 | 65 20 61 63 63 45 76 65 |.{...cas|e accEve|
|00002af0| 6e 74 3a 0d 09 09 09 64 | 6f 45 76 65 6e 74 28 28 |nt:....d|oEvent((|
|00002b00| 45 76 65 6e 74 52 65 63 | 6f 72 64 20 2a 29 20 70 |EventRec|ord *) p|
|00002b10| 62 2d 3e 63 73 70 2e 65 | 76 65 6e 74 29 3b 0d 09 |b->csp.e|vent);..|
|00002b20| 09 09 62 72 65 61 6b 3b | 0d 0d 09 09 63 61 73 65 |..break;|....case|
|00002b30| 20 61 63 63 4d 65 6e 75 | 3a 0d 09 09 09 64 6f 4d | accMenu|:....doM|
|00002b40| 65 6e 75 28 70 62 2d 3e | 63 73 70 2e 6d 65 6e 75 |enu(pb->|csp.menu|
|00002b50| 44 61 74 61 2e 6d 65 6e | 75 49 74 65 6d 2c 20 64 |Data.men|uItem, d|
|00002b60| 63 65 29 3b 0d 09 09 09 | 62 72 65 61 6b 3b 0d 0d |ce);....|break;..|
|00002b70| 09 09 64 65 66 61 75 6c | 74 3a 0d 09 09 09 64 72 |..defaul|t:....dr|
|00002b80| 61 77 44 69 73 70 6c 61 | 79 28 29 3b 0d 09 09 7d |awDispla|y();...}|
|00002b90| 0d 09 72 65 74 75 72 6e | 20 30 3b 0d 09 7d 0d 0d |..return| 0;..}..|
|00002ba0| 2f 2a 0d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*.-----|--------|
|00002bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bf0| 2d 2d 2d 0d 4d 41 49 4e | 20 45 56 45 4e 54 20 4c |---.MAIN| EVENT L|
|00002c00| 4f 4f 50 20 2a 2f 0d 0d | 64 6f 45 76 65 6e 74 28 |OOP */..|doEvent(|
|00002c10| 74 68 65 45 76 65 6e 74 | 29 0d 09 45 76 65 6e 74 |theEvent|)..Event|
|00002c20| 52 65 63 6f 72 64 20 2a | 74 68 65 45 76 65 6e 74 |Record *|theEvent|
|00002c30| 3b 0d 09 7b 0d 0d 09 73 | 77 69 74 63 68 20 28 74 |;..{...s|witch (t|
|00002c40| 68 65 45 76 65 6e 74 2d | 3e 77 68 61 74 29 0d 09 |heEvent-|>what)..|
|00002c50| 09 7b 0d 09 09 63 61 73 | 65 20 75 70 64 61 74 65 |.{...cas|e update|
|00002c60| 45 76 74 3a 0d 09 09 09 | 75 70 64 61 74 65 43 6c |Evt:....|updateCl|
|00002c70| 6f 63 6b 28 29 3b 0d 09 | 09 09 62 72 65 61 6b 3b |ock();..|..break;|
|00002c80| 0d 0d 09 09 63 61 73 65 | 20 61 63 74 69 76 61 74 |....case| activat|
|00002c90| 65 45 76 74 3a 0d 09 09 | 09 69 66 20 28 74 68 65 |eEvt:...|.if (the|
|00002ca0| 45 76 65 6e 74 2d 3e 6d | 6f 64 69 66 69 65 72 73 |Event->m|odifiers|
|00002cb0| 20 26 20 61 63 74 69 76 | 65 46 6c 61 67 29 0d 09 | & activ|eFlag)..|
|00002cc0| 09 09 09 61 63 74 69 76 | 61 74 65 28 29 3b 0d 09 |...activ|ate();..|
|00002cd0| 09 09 65 6c 73 65 0d 09 | 09 09 09 64 65 41 63 74 |..else..|...deAct|
|00002ce0| 69 76 61 74 65 28 29 3b | 0d 09 09 09 62 72 65 61 |ivate();|....brea|
|00002cf0| 6b 3b 0d 0d 09 09 64 65 | 66 61 75 6c 74 3a 0d 09 |k;....de|fault:..|
|00002d00| 09 09 64 72 61 77 44 69 | 73 70 6c 61 79 28 29 3b |..drawDi|splay();|
|00002d10| 0d 09 09 7d 0d 09 7d 0d | 0d 2f 2a 0d 2d 2d 2d 2d |...}..}.|./*.----|
|00002d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 55 50 44 |--------|----.UPD|
|00002d70| 41 54 45 20 43 4c 4f 43 | 4b 20 57 49 4e 44 4f 57 |ATE CLOC|K WINDOW|
|00002d80| 0d 4e 6f 72 6d 61 6c 6c | 79 2c 20 69 66 20 61 20 |.Normall|y, if a |
|00002d90| 64 69 61 6c 6f 67 20 63 | 6f 6e 74 61 69 6e 73 20 |dialog c|ontains |
|00002da0| 69 74 65 6d 73 20 73 75 | 63 68 20 61 73 20 62 75 |items su|ch as bu|
|00002db0| 74 74 6f 6e 73 20 6f 72 | 20 74 65 78 74 2c 20 61 |ttons or| text, a|
|00002dc0| 20 63 61 6c 6c 20 74 6f | 0d 44 72 61 77 44 69 61 | call to|.DrawDia|
|00002dd0| 6c 6f 67 28 29 20 69 73 | 20 75 73 65 64 20 62 65 |log() is| used be|
|00002de0| 74 77 65 65 6e 20 74 68 | 65 20 63 61 6c 6c 73 20 |tween th|e calls |
|00002df0| 74 6f 20 42 65 67 69 6e | 55 70 64 61 74 65 28 29 |to Begin|Update()|
|00002e00| 20 61 6e 64 20 45 6e 64 | 55 70 64 61 74 65 28 29 | and End|Update()|
|00002e10| 2e 20 49 6e 20 74 68 65 | 0d 63 61 73 65 20 74 68 |. In the|.case th|
|00002e20| 69 73 20 44 41 2c 20 61 | 20 63 61 6c 6c 20 74 6f |is DA, a| call to|
|00002e30| 20 44 72 61 77 44 69 61 | 6c 6f 67 28 29 20 69 73 | DrawDia|log() is|
|00002e40| 20 6e 6f 74 20 6f 6e 6c | 79 20 75 6e 6e 65 63 65 | not onl|y unnece|
|00002e50| 73 73 61 72 79 2c 20 69 | 74 20 77 69 6c 6c 20 61 |ssary, i|t will a|
|00002e60| 6c 73 6f 20 63 61 75 73 | 65 0d 61 6e 20 61 6e 6e |lso caus|e.an ann|
|00002e70| 6f 79 69 6e 67 20 66 6c | 69 63 6b 65 72 20 69 6e |oying fl|icker in|
|00002e80| 20 74 68 65 20 74 69 6d | 65 2f 64 61 74 65 20 64 | the tim|e/date d|
|00002e90| 69 73 70 61 6c 79 2e 20 | 54 68 69 73 20 69 73 20 |ispaly. |This is |
|00002ea0| 62 65 63 61 75 73 65 20 | 74 68 65 20 65 6d 70 74 |because |the empt|
|00002eb0| 79 20 73 74 61 74 69 63 | 0d 74 65 78 74 20 69 74 |y static|.text it|
|00002ec0| 65 6d 20 75 73 65 64 20 | 74 6f 20 70 6f 73 69 74 |em used |to posit|
|00002ed0| 69 6f 6e 20 74 68 65 20 | 64 69 73 70 6c 61 79 20 |ion the |display |
|00002ee0| 77 69 6c 6c 20 65 72 61 | 73 65 20 69 74 20 61 67 |will era|se it ag|
|00002ef0| 61 69 6e 20 64 75 72 69 | 6e 67 20 61 6e 20 75 70 |ain duri|ng an up|
|00002f00| 64 61 74 65 2e 20 2a 2f | 0d 0d 75 70 64 61 74 65 |date. */|..update|
|00002f10| 43 6c 6f 63 6b 28 29 0d | 09 7b 0d 0d 09 42 65 67 |Clock().|.{...Beg|
|00002f20| 69 6e 55 70 64 61 74 65 | 28 63 6c 6f 63 6b 44 69 |inUpdate|(clockDi|
|00002f30| 61 6c 6f 67 29 3b 0d 09 | 63 6c 6f 63 6b 44 69 72 |alog);..|clockDir|
|00002f40| 74 79 20 3d 20 54 52 55 | 45 3b 0d 09 64 72 61 77 |ty = TRU|E;..draw|
|00002f50| 44 69 73 70 6c 61 79 28 | 29 3b 0d 09 45 6e 64 55 |Display(|);..EndU|
|00002f60| 70 64 61 74 65 28 63 6c | 6f 63 6b 44 69 61 6c 6f |pdate(cl|ockDialo|
|00002f70| 67 29 3b 0d 09 7d 0d 0d | 2f 2a 0d 2d 2d 2d 2d 2d |g);..}..|/*.-----|
|00002f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 41 43 54 49 |--------|---.ACTI|
|00002fd0| 56 41 54 45 20 43 4c 4f | 43 4b 20 4d 45 4e 55 0d |VATE CLO|CK MENU.|
|00002fe0| 42 65 63 61 75 73 65 20 | 6f 6c 64 65 72 20 76 65 |Because |older ve|
|00002ff0| 72 73 69 6f 6e 73 20 6f | 66 20 74 68 65 20 46 6f |rsions o|f the Fo|
|00003000| 6e 74 2f 44 41 20 4d 6f | 76 65 72 20 64 6f 6e 27 |nt/DA Mo|ver don'|
|00003010| 74 20 63 6f 72 72 65 63 | 74 6c 79 20 72 65 73 65 |t correc|tly rese|
|00003020| 74 20 74 68 65 20 6d 65 | 6e 75 49 44 20 6f 66 0d |t the me|nuID of.|
|00003030| 61 20 4d 45 4e 55 20 72 | 65 73 6f 75 72 63 65 20 |a MENU r|esource |
|00003040| 77 68 65 6e 20 61 20 44 | 41 20 69 73 20 6d 6f 76 |when a D|A is mov|
|00003050| 65 64 20 69 6e 74 6f 20 | 74 68 65 20 73 79 73 74 |ed into |the syst|
|00003060| 65 6d 20 6f 72 20 61 6e | 6f 74 68 65 72 20 66 69 |em or an|other fi|
|00003070| 6c 65 2c 20 69 74 20 6d | 75 73 74 20 62 65 0d 70 |le, it m|ust be.p|
|00003080| 61 74 63 68 65 64 20 68 | 65 72 65 20 61 74 20 72 |atched h|ere at r|
|00003090| 75 6e 74 69 6d 65 20 62 | 65 66 6f 72 65 20 74 68 |untime b|efore th|
|000030a0| 65 20 6d 65 6e 75 20 69 | 73 20 69 6e 73 65 72 74 |e menu i|s insert|
|000030b0| 65 64 20 69 6e 20 74 68 | 65 20 6d 65 6e 75 62 61 |ed in th|e menuba|
|000030c0| 72 2e 20 2a 2f 0d 0d 61 | 63 74 69 76 61 74 65 28 |r. */..a|ctivate(|
|000030d0| 29 0d 09 7b 0d 09 0d 09 | 28 2a 68 43 6c 6f 63 6b |)..{....|(*hClock|
|000030e0| 4d 65 6e 75 29 2d 3e 6d | 65 6e 75 49 44 20 3d 20 |Menu)->m|enuID = |
|000030f0| 6f 77 6e 65 64 49 44 3b | 0d 09 49 6e 73 65 72 74 |ownedID;|..Insert|
|00003100| 4d 65 6e 75 28 68 43 6c | 6f 63 6b 4d 65 6e 75 2c |Menu(hCl|ockMenu,|
|00003110| 20 43 4c 4f 43 4b 5f 4d | 45 4e 55 29 3b 0d 09 44 | CLOCK_M|ENU);..D|
|00003120| 72 61 77 4d 65 6e 75 42 | 61 72 28 29 3b 0d 09 7d |rawMenuB|ar();..}|
|00003130| 0d 0d 2f 2a 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*.---|--------|
|00003140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003170| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003180| 2d 2d 2d 2d 2d 0d 44 45 | 41 43 54 49 56 41 54 45 |-----.DE|ACTIVATE|
|00003190| 20 43 4c 4f 43 4b 20 4d | 45 4e 55 20 2a 2f 0d 0d | CLOCK M|ENU */..|
|000031a0| 64 65 41 63 74 69 76 61 | 74 65 28 29 0d 09 7b 0d |deActiva|te()..{.|
|000031b0| 0d 09 44 65 6c 65 74 65 | 4d 65 6e 75 28 6f 77 6e |..Delete|Menu(own|
|000031c0| 65 64 49 44 29 3b 0d 09 | 44 72 61 77 4d 65 6e 75 |edID);..|DrawMenu|
|000031d0| 42 61 72 28 29 3b 0d 09 | 7d 0d 0d 2f 2a 0d 2d 2d |Bar();..|}../*.--|
|000031e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000031f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 44 |--------|------.D|
|00003230| 4f 20 4d 45 4e 55 0d 43 | 68 6f 6f 73 69 6e 67 20 |O MENU.C|hoosing |
|00003240| 22 41 62 6f 75 74 c9 22 | 20 69 6e 20 74 68 65 20 |"About."| in the |
|00003250| 22 43 6c 6f 63 6b 22 20 | 6d 65 6e 75 20 77 69 6c |"Clock" |menu wil|
|00003260| 6c 20 69 6e 76 6f 6b 65 | 20 4d 6f 64 61 6c 44 69 |l invoke| ModalDi|
|00003270| 61 6c 6f 67 28 29 2e 20 | 53 69 6e 63 65 20 6f 6e |alog(). |Since on|
|00003280| 65 20 6f 66 0d 74 68 65 | 20 66 69 72 73 74 20 74 |e of.the| first t|
|00003290| 68 69 6e 67 73 20 4d 6f | 64 61 6c 44 69 61 6c 6f |hings Mo|dalDialo|
|000032a0| 67 28 29 20 64 6f 65 73 | 20 69 73 20 63 61 6c 6c |g() does| is call|
|000032b0| 20 53 79 73 74 65 6d 54 | 61 73 6b 28 29 2c 20 74 | SystemT|ask(), t|
|000032c0| 68 65 20 44 41 20 63 6f | 6e 74 72 6f 6c 20 72 6f |he DA co|ntrol ro|
|000032d0| 75 74 69 6e 65 0d 63 61 | 6e 20 62 65 20 63 61 6c |utine.ca|n be cal|
|000032e0| 6c 65 64 20 61 67 61 69 | 6e 2e 20 49 6e 20 74 68 |led agai|n. In th|
|000032f0| 65 20 63 61 73 65 20 6f | 66 20 74 68 69 73 20 44 |e case o|f this D|
|00003300| 41 2c 20 74 68 65 20 70 | 72 6f 62 6c 65 6d 20 6f |A, the p|roblem o|
|00003310| 66 20 72 65 2d 65 6e 74 | 72 61 6e 63 79 20 77 69 |f re-ent|rancy wi|
|00003320| 6c 6c 20 6e 6f 74 0d 63 | 61 75 73 65 20 4d 6f 64 |ll not.c|ause Mod|
|00003330| 61 6c 44 69 61 6c 6f 67 | 28 29 20 74 6f 20 62 65 |alDialog|() to be|
|00003340| 20 69 6e 76 6f 6b 65 64 | 20 61 67 61 69 6e 20 62 | invoked| again b|
|00003350| 65 63 61 75 73 65 20 69 | 74 20 63 61 6e 27 74 20 |ecause i|t can't |
|00003360| 62 65 20 73 65 6c 65 63 | 74 65 64 20 66 72 6f 6d |be selec|ted from|
|00003370| 20 74 68 65 0d 6d 65 6e | 75 20 6f 6e 63 65 20 74 | the.men|u once t|
|00003380| 68 65 20 6d 6f 64 61 6c | 20 64 69 61 6c 6f 67 20 |he modal| dialog |
|00003390| 69 73 20 61 63 74 69 76 | 65 2e 0d 0d 48 6f 77 65 |is activ|e...Howe|
|000033a0| 76 65 72 2c 20 74 68 65 | 20 63 6f 64 65 20 69 6e |ver, the| code in|
|000033b0| 20 44 41 48 65 61 64 65 | 72 2e 61 73 6d 20 77 68 | DAHeade|r.asm wh|
|000033c0| 69 63 68 20 63 61 6c 6c | 73 20 63 6f 6e 74 72 6f |ich call|s contro|
|000033d0| 6c 28 29 2c 20 6c 6f 63 | 6b 73 20 74 68 65 20 67 |l(), loc|ks the g|
|000033e0| 6c 6f 62 61 6c 0d 76 61 | 72 69 61 62 6c 65 73 20 |lobal.va|riables |
|000033f0| 6f 6e 20 74 68 65 20 68 | 65 61 70 20 6f 6e 20 65 |on the h|eap on e|
|00003400| 6e 74 72 61 6e 63 65 20 | 61 6e 64 20 74 68 65 6e |ntrance |and then|
|00003410| 20 75 6e 6c 6f 63 6b 73 | 20 74 68 65 6d 20 6f 6e | unlocks| them on|
|00003420| 20 65 78 69 74 2e 20 54 | 68 65 20 44 65 73 6b 0d | exit. T|he Desk.|
|00003430| 4d 61 6e 61 67 65 72 20 | 64 6f 65 73 20 74 68 69 |Manager |does thi|
|00003440| 73 20 73 61 6d 65 20 74 | 68 69 6e 67 20 74 6f 20 |s same t|hing to |
|00003450| 74 68 65 20 44 52 56 52 | 20 63 6f 64 65 20 72 65 |the DRVR| code re|
|00003460| 73 6f 75 72 63 65 20 62 | 65 66 6f 72 65 20 61 6e |source b|efore an|
|00003470| 64 20 61 66 74 65 72 20 | 74 68 65 20 44 41 0d 69 |d after |the DA.i|
|00003480| 73 20 63 61 6c 6c 65 64 | 2e 20 54 6f 20 61 76 6f |s called|. To avo|
|00003490| 69 64 20 74 68 65 20 70 | 6f 73 73 69 62 69 6c 69 |id the p|ossibili|
|000034a0| 74 79 20 6f 66 20 4d 6f | 64 61 6c 44 69 61 6c 6f |ty of Mo|dalDialo|
|000034b0| 67 28 29 20 63 61 75 73 | 69 6e 67 20 68 65 61 70 |g() caus|ing heap|
|000034c0| 20 63 6f 6d 70 61 63 74 | 69 6f 6e 20 61 6e 64 0d | compact|ion and.|
|000034d0| 6d 6f 76 69 6e 67 20 65 | 69 74 68 65 72 20 74 68 |moving e|ither th|
|000034e0| 65 20 44 52 56 52 20 63 | 6f 64 65 20 72 65 73 6f |e DRVR c|ode reso|
|000034f0| 75 72 63 65 20 6f 72 20 | 74 68 65 20 67 6c 6f 62 |urce or |the glob|
|00003500| 61 6c 73 20 77 68 69 6c | 65 20 75 6e 6c 6f 63 6b |als whil|e unlock|
|00003510| 65 64 2c 20 74 68 65 20 | 64 65 76 69 63 65 0d 63 |ed, the |device.c|
|00003520| 6f 6e 74 72 6f 6c 20 65 | 6e 74 72 79 20 6f 66 20 |ontrol e|ntry of |
|00003530| 74 68 69 73 20 44 41 20 | 69 73 20 6d 6f 64 69 66 |this DA |is modif|
|00003540| 69 65 64 20 62 65 66 6f | 72 65 20 4d 6f 64 61 6c |ied befo|re Modal|
|00003550| 44 69 61 6c 6f 67 28 29 | 20 69 73 20 69 6e 76 6f |Dialog()| is invo|
|00003560| 6b 65 64 2e 0d 0d 46 69 | 72 73 74 2c 20 74 6f 20 |ked...Fi|rst, to |
|00003570| 70 72 65 76 65 6e 74 20 | 63 6f 6e 74 72 6f 6c 28 |prevent |control(|
|00003580| 29 20 66 72 6f 6d 20 62 | 65 69 6e 67 20 69 6e 76 |) from b|eing inv|
|00003590| 6f 6b 65 64 20 62 79 20 | 53 79 73 74 65 6d 54 61 |oked by |SystemTa|
|000035a0| 73 6b 28 29 2c 20 74 68 | 65 20 64 43 74 6c 45 6e |sk(), th|e dCtlEn|
|000035b0| 61 62 6c 65 0d 62 69 74 | 20 6f 66 20 74 68 65 20 |able.bit| of the |
|000035c0| 64 43 74 6c 46 6c 61 67 | 73 20 66 69 65 6c 64 20 |dCtlFlag|s field |
|000035d0| 69 6e 20 74 68 65 20 64 | 63 65 20 69 73 20 69 73 |in the d|ce is is|
|000035e0| 20 63 6c 65 61 72 65 64 | 2e 20 54 68 69 73 20 6d | cleared|. This m|
|000035f0| 61 6b 65 73 20 63 65 72 | 74 61 69 6e 20 61 6c 6c |akes cer|tain all|
|00003600| 0d 67 6c 6f 62 61 6c 20 | 76 61 72 69 61 62 6c 65 |.global |variable|
|00003610| 73 20 72 65 6d 61 69 6e | 20 6c 6f 63 6b 65 64 20 |s remain| locked |
|00003620| 6f 6e 20 74 68 65 20 68 | 65 61 70 2c 20 62 65 63 |on the h|eap, bec|
|00003630| 61 75 73 65 20 63 6f 6e | 74 72 6f 6c 28 29 20 77 |ause con|trol() w|
|00003640| 69 6c 6c 20 6e 6f 74 20 | 65 78 69 74 0d 75 6e 74 |ill not |exit.unt|
|00003650| 69 6c 20 74 68 65 20 6d | 6f 64 61 6c 20 64 69 61 |il the m|odal dia|
|00003660| 6c 6f 67 20 72 6f 75 74 | 69 6e 65 20 69 73 20 63 |log rout|ine is c|
|00003670| 6f 6d 70 6c 65 74 65 64 | 2e 0d 0d 53 65 63 6f 6e |ompleted|...Secon|
|00003680| 64 2c 20 74 68 65 20 64 | 4e 65 65 64 4c 6f 63 6b |d, the d|NeedLock|
|00003690| 20 62 69 74 20 6f 66 20 | 74 68 65 20 20 64 43 74 | bit of |the dCt|
|000036a0| 6c 46 6c 61 67 73 20 77 | 6f 72 64 20 69 73 20 73 |lFlags w|ord is s|
|000036b0| 65 74 20 74 6f 20 6d 61 | 6b 65 20 63 65 72 74 61 |et to ma|ke certa|
|000036c0| 69 6e 20 74 68 65 20 44 | 52 56 52 0d 63 6f 64 65 |in the D|RVR.code|
|000036d0| 20 72 65 73 6f 75 72 63 | 65 20 72 65 6d 61 69 6e | resourc|e remain|
|000036e0| 73 20 6c 6f 63 6b 65 64 | 20 6f 6e 20 74 68 65 20 |s locked| on the |
|000036f0| 68 65 61 70 2e 20 49 66 | 20 74 68 65 20 64 4e 65 |heap. If| the dNe|
|00003700| 65 64 4c 6f 63 6b 20 62 | 69 74 20 69 73 20 73 65 |edLock b|it is se|
|00003710| 74 20 69 6e 20 74 68 65 | 0d 61 63 74 75 61 6c 20 |t in the|.actual |
|00003720| 66 6c 61 67 73 20 6f 66 | 20 74 68 65 20 44 41 20 |flags of| the DA |
|00003730| 68 65 61 64 65 72 2c 20 | 74 68 69 73 20 73 74 65 |header, |this ste|
|00003740| 70 20 69 73 20 75 6e 6e | 65 63 65 73 73 61 72 79 |p is unn|ecessary|
|00003750| 0d 0d 2a 2a 2a 20 49 4d | 50 4f 52 54 41 4e 54 20 |..*** IM|PORTANT |
|00003760| 2a 2a 2a 20 54 68 65 73 | 65 20 74 77 6f 20 62 69 |*** Thes|e two bi|
|00003770| 74 73 20 61 72 65 20 6d | 6f 64 69 66 69 65 64 20 |ts are m|odified |
|00003780| 6d 75 73 74 20 62 65 20 | 72 65 73 74 6f 72 65 64 |must be |restored|
|00003790| 20 6f 6e 20 65 78 69 74 | 20 6f 66 20 74 68 65 0d | on exit| of the.|
|000037a0| 6d 6f 64 61 6c 20 64 69 | 61 6c 6f 67 20 72 6f 75 |modal di|alog rou|
|000037b0| 74 69 6e 65 21 21 21 20 | 2a 2f 0d 0d 64 6f 4d 65 |tine!!! |*/..doMe|
|000037c0| 6e 75 28 6d 65 6e 75 49 | 74 65 6d 2c 20 64 63 65 |nu(menuI|tem, dce|
|000037d0| 29 0d 09 73 68 6f 72 74 | 20 6d 65 6e 75 49 74 65 |)..short| menuIte|
|000037e0| 6d 3b 0d 09 44 43 45 6e | 74 72 79 20 2a 64 63 65 |m;..DCEn|try *dce|
|000037f0| 3b 0d 09 7b 0d 09 73 68 | 6f 72 74 20 74 68 65 49 |;..{..sh|ort theI|
|00003800| 74 65 6d 3b 0d 09 44 69 | 61 6c 6f 67 50 74 72 20 |tem;..Di|alogPtr |
|00003810| 61 62 6f 75 74 44 69 61 | 6c 6f 67 3b 0d 0d 09 73 |aboutDia|log;...s|
|00003820| 77 69 74 63 68 20 28 6d | 65 6e 75 49 74 65 6d 29 |witch (m|enuItem)|
|00003830| 0d 09 09 7b 0d 09 09 63 | 61 73 65 20 54 49 4d 45 |...{...c|ase TIME|
|00003840| 5f 49 54 45 4d 3a 0d 09 | 09 09 69 66 20 28 63 6c |_ITEM:..|..if (cl|
|00003850| 6f 63 6b 53 65 6c 65 63 | 74 69 6f 6e 20 21 3d 20 |ockSelec|tion != |
|00003860| 54 49 4d 45 5f 53 45 4c | 45 43 54 49 4f 4e 29 0d |TIME_SEL|ECTION).|
|00003870| 09 09 09 09 63 6c 6f 63 | 6b 44 69 72 74 79 20 3d |....cloc|kDirty =|
|00003880| 54 52 55 45 3b 0d 09 09 | 09 63 6c 6f 63 6b 46 6f |TRUE;...|.clockFo|
|00003890| 72 6d 61 74 20 3d 20 57 | 41 4e 54 5f 53 45 43 4f |rmat = W|ANT_SECO|
|000038a0| 4e 44 53 3b 0d 09 09 09 | 63 6c 6f 63 6b 53 65 6c |NDS;....|clockSel|
|000038b0| 65 63 74 69 6f 6e 20 3d | 20 54 49 4d 45 5f 53 45 |ection =| TIME_SE|
|000038c0| 4c 45 43 54 49 4f 4e 3b | 0d 09 09 09 64 72 61 77 |LECTION;|....draw|
|000038d0| 44 69 73 70 6c 61 79 28 | 29 3b 0d 09 09 09 62 72 |Display(|);....br|
|000038e0| 65 61 6b 3b 0d 0d 09 09 | 63 61 73 65 20 44 41 54 |eak;....|case DAT|
|000038f0| 45 5f 49 54 45 4d 3a 0d | 09 09 09 69 66 20 28 63 |E_ITEM:.|...if (c|
|00003900| 6c 6f 63 6b 53 65 6c 65 | 63 74 69 6f 6e 20 21 3d |lockSele|ction !=|
|00003910| 20 44 41 54 45 5f 53 45 | 4c 45 43 54 49 4f 4e 29 | DATE_SE|LECTION)|
|00003920| 0d 09 09 09 09 63 6c 6f | 63 6b 44 69 72 74 79 20 |.....clo|ckDirty |
|00003930| 3d 54 52 55 45 3b 0d 09 | 09 09 63 6c 6f 63 6b 46 |=TRUE;..|..clockF|
|00003940| 6f 72 6d 61 74 20 3d 20 | 73 68 6f 72 74 44 61 74 |ormat = |shortDat|
|00003950| 65 3b 0d 09 09 09 63 6c | 6f 63 6b 53 65 6c 65 63 |e;....cl|ockSelec|
|00003960| 74 69 6f 6e 20 3d 20 44 | 41 54 45 5f 53 45 4c 45 |tion = D|ATE_SELE|
|00003970| 43 54 49 4f 4e 3b 0d 09 | 09 09 64 72 61 77 44 69 |CTION;..|..drawDi|
|00003980| 73 70 6c 61 79 28 29 3b | 0d 09 09 09 62 72 65 61 |splay();|....brea|
|00003990| 6b 3b 0d 0d 09 09 63 61 | 73 65 20 41 42 4f 55 54 |k;....ca|se ABOUT|
|000039a0| 5f 49 54 45 4d 3a 0d 09 | 09 09 64 63 65 2d 3e 64 |_ITEM:..|..dce->d|
|000039b0| 43 74 6c 46 6c 61 67 73 | 20 26 3d 20 30 78 46 42 |CtlFlags| &= 0xFB|
|000039c0| 46 46 3b 20 2f 2a 20 63 | 6c 65 61 72 20 64 43 74 |FF; /* c|lear dCt|
|000039d0| 6c 45 6e 61 62 6c 65 20 | 2a 2f 0d 09 09 09 64 63 |lEnable |*/....dc|
|000039e0| 65 2d 3e 64 43 74 6c 46 | 6c 61 67 73 20 5e 3d 20 |e->dCtlF|lags ^= |
|000039f0| 30 78 34 30 30 30 3b 20 | 2f 2a 20 73 65 74 20 64 |0x4000; |/* set d|
|00003a00| 4e 65 65 64 4c 6f 63 6b | 20 2a 2f 0d 09 09 09 61 |NeedLock| */....a|
|00003a10| 62 6f 75 74 44 69 61 6c | 6f 67 20 3d 20 47 65 74 |boutDial|og = Get|
|00003a20| 4e 65 77 44 69 61 6c 6f | 67 28 41 42 4f 55 54 5f |NewDialo|g(ABOUT_|
|00003a30| 44 4c 4f 47 20 2b 20 6f | 77 6e 65 64 49 44 2c 20 |DLOG + o|wnedID, |
|00003a40| 4e 49 4c 2c 20 46 52 4f | 4e 54 5f 57 49 4e 44 4f |NIL, FRO|NT_WINDO|
|00003a50| 57 29 3b 0d 0d 09 09 09 | 64 6f 0d 09 09 09 09 4d |W);.....|do.....M|
|00003a60| 6f 64 61 6c 44 69 61 6c | 6f 67 28 64 6f 4d 6f 64 |odalDial|og(doMod|
|00003a70| 61 6c 2c 20 26 74 68 65 | 49 74 65 6d 29 3b 0d 09 |al, &the|Item);..|
|00003a80| 09 09 77 68 69 6c 65 0d | 09 09 09 09 28 74 68 65 |..while.|....(the|
|00003a90| 49 74 65 6d 20 3e 20 6f | 4b 29 3b 0d 0d 09 09 09 |Item > o|K);.....|
|00003aa0| 44 69 73 70 6f 73 65 44 | 69 61 6c 6f 67 28 61 62 |DisposeD|ialog(ab|
|00003ab0| 6f 75 74 44 69 61 6c 6f | 67 29 3b 0d 09 09 09 64 |outDialo|g);....d|
|00003ac0| 63 65 2d 3e 64 43 74 6c | 46 6c 61 67 73 20 5e 3d |ce->dCtl|Flags ^=|
|00003ad0| 20 30 78 30 34 30 30 3b | 20 2f 2a 20 73 65 74 20 | 0x0400;| /* set |
|00003ae0| 64 43 74 6c 45 6e 61 62 | 6c 65 20 2a 2f 0d 09 09 |dCtlEnab|le */...|
|00003af0| 09 64 63 65 2d 3e 64 43 | 74 6c 46 6c 61 67 73 20 |.dce->dC|tlFlags |
|00003b00| 26 3d 20 30 78 42 46 46 | 46 3b 20 2f 2a 20 63 6c |&= 0xBFF|F; /* cl|
|00003b10| 65 61 72 20 64 4e 65 65 | 64 4c 6f 63 6b 20 2a 2f |ear dNee|dLock */|
|00003b20| 0d 09 09 7d 0d 09 48 69 | 6c 69 74 65 4d 65 6e 75 |...}..Hi|liteMenu|
|00003b30| 28 43 4c 4f 43 4b 5f 4d | 45 4e 55 29 3b 0d 09 7d |(CLOCK_M|ENU);..}|
|00003b40| 0d 0d 2f 2a 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*.---|--------|
|00003b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b90| 2d 2d 2d 2d 2d 0d 4d 4f | 44 41 4c 20 44 49 41 4c |-----.MO|DAL DIAL|
|00003ba0| 4f 47 20 46 49 4c 54 45 | 52 20 46 55 4e 43 54 49 |OG FILTE|R FUNCTI|
|00003bb0| 4f 4e 0d 53 69 6e 63 65 | 20 74 68 65 20 44 41 20 |ON.Since| the DA |
|00003bc0| 63 6f 6e 74 72 6f 6c 20 | 72 6f 75 74 69 6e 65 20 |control |routine |
|00003bd0| 69 73 20 64 69 73 61 62 | 6c 65 64 20 62 65 66 6f |is disab|led befo|
|00003be0| 72 65 20 4d 6f 64 61 6c | 44 69 61 6c 6f 67 28 29 |re Modal|Dialog()|
|00003bf0| 20 69 73 20 69 6e 76 6f | 6b 65 64 2c 20 61 6e 64 | is invo|ked, and|
|00003c00| 0d 53 79 73 74 65 6d 54 | 61 73 6b 28 29 20 63 61 |.SystemT|ask() ca|
|00003c10| 6e 20 6e 6f 20 6c 6f 6e | 67 65 72 20 63 61 6c 6c |n no lon|ger call|
|00003c20| 20 63 6f 6e 74 72 6f 6c | 28 29 20 77 68 69 63 68 | control|() which|
|00003c30| 20 74 68 65 6e 20 63 61 | 6c 6c 73 20 64 72 61 77 | then ca|lls draw|
|00003c40| 44 69 73 70 6c 61 79 28 | 29 3b 20 74 68 69 73 0d |Display(|); this.|
|00003c50| 66 75 6e 63 74 69 6f 6e | 2c 20 69 6e 76 6f 6b 65 |function|, invoke|
|00003c60| 64 20 62 79 20 4d 6f 64 | 61 6c 44 69 61 6c 6f 67 |d by Mod|alDialog|
|00003c70| 28 29 2c 20 64 72 61 77 | 73 20 74 68 65 20 63 6c |(), draw|s the cl|
|00003c80| 6f 63 6b 20 64 69 73 70 | 6c 61 79 2e 20 49 74 20 |ock disp|lay. It |
|00003c90| 6d 75 73 74 20 61 6c 73 | 6f 20 63 68 65 63 6b 0d |must als|o check.|
|00003ca0| 74 68 65 20 6d 6f 64 61 | 6c 20 64 69 61 6c 6f 67 |the moda|l dialog|
|00003cb0| 20 65 76 65 6e 74 20 72 | 65 63 6f 72 64 20 66 6f | event r|ecord fo|
|00003cc0| 72 20 61 20 6b 65 79 70 | 72 65 73 73 20 63 68 61 |r a keyp|ress cha|
|00003cd0| 72 61 63 74 65 72 20 63 | 6f 64 65 20 65 71 75 61 |racter c|ode equa|
|00003ce0| 6c 20 74 6f 20 52 65 74 | 75 72 6e 20 6f 72 0d 45 |l to Ret|urn or.E|
|00003cf0| 6e 74 65 72 2c 20 61 6e | 64 20 72 65 74 75 72 6e |nter, an|d return|
|00003d00| 20 61 20 72 65 73 75 6c | 74 20 74 6f 20 4d 6f 64 | a resul|t to Mod|
|00003d10| 61 6c 44 69 61 6c 6f 67 | 28 29 2e 0d 0d 54 68 65 |alDialog|()...The|
|00003d20| 20 4c 69 73 61 20 50 61 | 73 63 61 6c 20 66 6f 72 | Lisa Pa|scal for|
|00003d30| 6d 61 74 20 66 6f 72 20 | 61 20 64 69 61 6c 6f 67 |mat for |a dialog|
|00003d40| 20 66 69 6c 74 65 72 20 | 66 75 6e 63 74 69 6f 6e | filter |function|
|00003d50| 20 69 73 3a 0d 09 50 52 | 4f 43 45 44 55 52 45 20 | is:..PR|OCEDURE |
|00003d60| 4d 79 46 69 6c 74 65 72 | 28 74 68 65 44 69 61 6c |MyFilter|(theDial|
|00003d70| 6f 67 3a 20 44 69 61 6c | 6f 67 50 74 72 3b 20 56 |og: Dial|ogPtr; V|
|00003d80| 41 52 20 74 68 65 45 76 | 65 6e 74 3a 20 45 76 65 |AR theEv|ent: Eve|
|00003d90| 6e 74 52 65 63 6f 72 64 | 3b 0d 09 09 09 09 09 09 |ntRecord|;.......|
|00003da0| 09 09 56 41 52 20 69 74 | 65 6d 48 69 74 3a 20 49 |..VAR it|emHit: I|
|00003db0| 4e 54 45 47 45 52 29 20 | 3a 20 42 4f 4f 4c 45 41 |NTEGER) |: BOOLEA|
|00003dc0| 4e 3b 0d 0d 53 69 6e 63 | 65 20 4d 61 63 20 43 20 |N;..Sinc|e Mac C |
|00003dd0| 70 61 73 73 65 73 20 6d | 6f 73 74 20 70 61 72 61 |passes m|ost para|
|00003de0| 6d 65 74 65 72 73 20 69 | 6e 20 72 65 67 69 73 74 |meters i|n regist|
|00003df0| 65 72 73 2c 20 64 6f 4d | 6f 64 61 6c 28 29 20 6d |ers, doM|odal() m|
|00003e00| 75 73 74 20 62 65 20 77 | 72 69 74 74 65 6e 20 69 |ust be w|ritten i|
|00003e10| 6e 0d 61 73 73 65 6d 62 | 6c 79 20 6c 61 6e 67 75 |n.assemb|ly langu|
|00003e20| 61 67 65 2e 0d 0d 4f 6e | 20 65 6e 74 72 79 20 74 |age...On| entry t|
|00003e30| 68 65 20 73 74 61 63 6b | 20 63 6f 6e 74 61 69 6e |he stack| contain|
|00003e40| 73 20 28 69 6e 20 64 65 | 73 63 65 6e 64 69 6e 67 |s (in de|scending|
|00003e50| 20 6f 72 64 65 72 29 3a | 0d 09 73 70 61 63 65 20 | order):|..space |
|00003e60| 66 6f 72 20 62 6f 6f 6c | 65 61 6e 20 72 65 73 75 |for bool|ean resu|
|00003e70| 6c 74 20 28 77 6f 72 64 | 29 0d 09 70 6f 69 6e 74 |lt (word|)..point|
|00003e80| 65 72 20 74 6f 20 6d 6f | 64 61 6c 20 64 69 61 6c |er to mo|dal dial|
|00003e90| 6f 67 20 28 6c 6f 6e 67 | 29 0d 09 70 6f 69 6e 74 |og (long|)..point|
|00003ea0| 65 72 20 74 6f 20 64 69 | 61 6c 6f 67 20 65 76 65 |er to di|alog eve|
|00003eb0| 6e 74 20 72 65 63 6f 72 | 64 20 28 6c 6f 6e 67 29 |nt recor|d (long)|
|00003ec0| 0d 09 70 6f 69 6e 74 65 | 72 20 74 6f 20 64 69 61 |..pointe|r to dia|
|00003ed0| 6c 6f 67 20 69 74 65 6d | 20 68 69 74 20 28 6c 6f |log item| hit (lo|
|00003ee0| 6e 67 29 0d 09 72 65 74 | 75 72 6e 20 61 64 64 72 |ng)..ret|urn addr|
|00003ef0| 65 73 73 20 28 6c 6f 6e | 67 29 0d 0d 4f 6e 20 65 |ess (lon|g)..On e|
|00003f00| 78 69 74 3a 0d 09 62 6f | 6f 6c 65 61 6e 20 72 65 |xit:..bo|olean re|
|00003f10| 73 75 6c 74 20 28 77 6f | 72 64 29 0d 09 72 65 74 |sult (wo|rd)..ret|
|00003f20| 75 72 6e 20 61 64 64 72 | 65 73 73 20 28 6c 6f 6e |urn addr|ess (lon|
|00003f30| 67 29 0d 0d 54 68 65 20 | 22 63 6f 72 72 65 63 74 |g)..The |"correct|
|00003f40| 22 20 6d 65 74 68 6f 64 | 20 6f 66 20 61 64 64 72 |" method| of addr|
|00003f50| 65 73 73 69 6e 67 20 70 | 61 72 61 6d 65 74 65 72 |essing p|arameter|
|00003f60| 73 20 70 61 73 73 65 64 | 20 74 6f 20 61 20 73 75 |s passed| to a su|
|00003f70| 62 72 6f 75 74 69 6e 65 | 20 6f 6e 20 74 68 65 0d |broutine| on the.|
|00003f80| 73 74 61 63 6b 20 69 73 | 20 74 6f 20 64 65 66 69 |stack is| to defi|
|00003f90| 6e 65 20 74 68 65 6d 20 | 69 6e 20 61 20 73 74 61 |ne them |in a sta|
|00003fa0| 63 6b 20 66 72 61 6d 65 | 20 76 69 61 20 61 20 4c |ck frame| via a L|
|00003fb0| 49 4e 4b 20 41 6e 20 69 | 6e 73 74 72 75 63 74 69 |INK An i|nstructi|
|00003fc0| 6f 6e 20 6f 6e 20 65 6e | 74 72 61 6e 63 65 0d 61 |on on en|trance.a|
|00003fd0| 6e 64 20 55 4e 4c 4b 20 | 41 6e 20 6f 6e 20 65 78 |nd UNLK |An on ex|
|00003fe0| 69 74 2e 20 48 6f 77 65 | 76 65 72 2c 20 74 68 65 |it. Howe|ver, the|
|00003ff0| 20 22 63 6f 72 72 65 63 | 74 22 20 6d 65 74 68 6f | "correc|t" metho|
|00004000| 64 20 74 61 6b 65 73 20 | 6d 6f 72 65 20 63 6f 64 |d takes |more cod|
|00004010| 65 20 73 70 61 63 65 20 | 61 6e 64 20 69 73 0d 6e |e space |and is.n|
|00004020| 6f 74 20 65 73 70 65 63 | 69 61 6c 6c 79 20 61 6e |ot espec|ially an|
|00004030| 79 20 6d 6f 72 65 20 6c | 65 67 69 62 6c 65 20 74 |y more l|egible t|
|00004040| 68 61 6e 20 74 68 65 20 | 69 6d 70 6c 65 6d 65 6e |han the |implemen|
|00004050| 74 61 74 69 6f 6e 20 68 | 65 72 65 2e 0d 0d 49 66 |tation h|ere...If|
|00004060| 20 52 65 74 75 72 6e 20 | 6f 72 20 45 6e 74 65 72 | Return |or Enter|
|00004070| 20 63 68 61 72 61 63 74 | 65 72 73 20 68 61 76 65 | charact|ers have|
|00004080| 20 62 65 65 6e 20 67 65 | 6e 65 72 61 74 65 64 20 | been ge|nerated |
|00004090| 66 72 6f 6d 20 74 68 65 | 20 6b 65 79 62 6f 61 72 |from the| keyboar|
|000040a0| 64 2c 20 64 6f 4d 6f 64 | 61 6c 28 29 0d 6d 75 73 |d, doMod|al().mus|
|000040b0| 74 20 73 65 74 20 69 74 | 65 6d 48 69 74 20 65 71 |t set it|emHit eq|
|000040c0| 75 61 6c 20 74 6f 20 31 | 20 61 6e 64 20 72 65 74 |ual to 1| and ret|
|000040d0| 75 72 6e 20 61 20 72 65 | 73 75 6c 74 20 6f 66 20 |urn a re|sult of |
|000040e0| 54 52 55 45 2e 20 49 66 | 20 6e 6f 74 2c 20 69 74 |TRUE. If| not, it|
|000040f0| 20 6d 75 73 74 20 72 65 | 74 75 72 6e 0d 61 20 72 | must re|turn.a r|
|00004100| 65 73 75 6c 74 20 6f 66 | 20 46 41 4c 53 45 20 73 |esult of| FALSE s|
|00004110| 6f 20 4d 6f 64 61 6c 44 | 69 61 6c 6f 67 28 29 20 |o ModalD|ialog() |
|00004120| 77 69 6c 6c 20 68 61 6e | 64 6c 65 20 74 68 65 20 |will han|dle the |
|00004130| 65 76 65 6e 74 2e 0d 0d | 45 76 65 72 79 74 68 69 |event...|Everythi|
|00004140| 6e 67 20 73 65 65 6d 73 | 20 74 6f 20 77 6f 72 6b |ng seems| to work|
|00004150| 20 63 6f 72 72 65 63 74 | 6c 79 20 77 69 74 68 6f | correct|ly witho|
|00004160| 75 74 20 73 61 76 69 6e | 67 20 61 6e 79 20 72 65 |ut savin|g any re|
|00004170| 67 69 73 74 65 72 73 20 | 62 65 66 6f 72 65 20 63 |gisters |before c|
|00004180| 61 6c 6c 69 6e 67 0d 64 | 72 61 77 44 69 73 70 6c |alling.d|rawDispl|
|00004190| 61 79 28 29 2e 20 48 6f | 77 65 76 65 72 2c 20 73 |ay(). Ho|wever, s|
|000041a0| 61 76 69 6e 67 20 72 65 | 67 69 73 74 65 72 73 20 |aving re|gisters |
|000041b0| 69 73 20 61 20 76 65 72 | 79 20 67 6f 6f 64 20 69 |is a ver|y good i|
|000041c0| 64 65 61 2e 20 2a 2f 0d | 0d 64 6f 4d 6f 64 61 6c |dea. */.|.doModal|
|000041d0| 28 29 0d 09 7b 0d 0d 09 | 23 61 73 6d 0d 09 09 09 |()..{...|#asm....|
|000041e0| 09 09 4d 4f 56 45 2e 4c | 09 09 28 53 50 29 2b 2c |..MOVE.L|..(SP)+,|
|000041f0| 44 30 09 09 09 09 09 3b | 20 73 61 76 65 20 72 65 |D0.....;| save re|
|00004200| 74 75 72 6e 20 61 64 64 | 72 65 73 73 0d 09 09 09 |turn add|ress....|
|00004210| 09 09 4d 4f 56 45 41 2e | 4c 09 09 28 53 50 29 2b |..MOVEA.|L..(SP)+|
|00004220| 2c 41 30 09 09 09 09 09 | 3b 20 73 61 76 65 20 69 |,A0.....|; save i|
|00004230| 74 65 6d 20 68 69 74 20 | 70 74 72 0d 09 09 09 09 |tem hit |ptr.....|
|00004240| 09 4d 4f 56 45 41 2e 4c | 09 09 28 53 50 29 2b 2c |.MOVEA.L|..(SP)+,|
|00004250| 41 31 09 09 09 09 09 3b | 20 73 61 76 65 20 65 76 |A1.....;| save ev|
|00004260| 65 6e 74 20 72 65 63 6f | 72 64 20 70 74 72 0d 09 |ent reco|rd ptr..|
|00004270| 09 09 09 09 4d 4f 56 45 | 2e 4c 09 09 44 30 2c 28 |....MOVE|.L..D0,(|
|00004280| 53 50 29 09 09 09 09 09 | 09 3b 20 72 65 73 74 6f |SP).....|.; resto|
|00004290| 72 65 20 72 65 74 75 72 | 6e 20 61 64 64 72 65 73 |re retur|n addres|
|000042a0| 73 0d 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |s.......|........|
|000042b0| 09 09 09 09 09 3b 20 61 | 6e 64 20 74 72 61 73 68 |.....; a|nd trash|
|000042c0| 20 64 69 61 6c 6f 67 20 | 70 74 72 0d 09 09 09 09 | dialog |ptr.....|
|000042d0| 09 4d 4f 56 45 2e 57 09 | 09 28 41 31 29 2c 44 30 |.MOVE.W.|.(A1),D0|
|000042e0| 09 09 09 09 09 09 3b 20 | 67 65 74 20 65 76 74 4e |......; |get evtN|
|000042f0| 75 6d 0d 09 09 09 09 09 | 43 4d 50 49 2e 57 09 09 |um......|CMPI.W..|
|00004300| 23 33 2c 44 30 09 09 09 | 09 09 09 09 3b 20 6b 65 |#3,D0...|....; ke|
|00004310| 79 44 77 6e 45 76 74 3f | 0d 09 09 09 09 09 42 4e |yDwnEvt?|......BN|
|00004320| 45 2e 53 09 09 09 6e 6f | 4b 65 79 45 76 65 6e 74 |E.S...no|KeyEvent|
|00004330| 0d 0d 09 09 09 09 09 4d | 4f 56 45 2e 57 09 09 34 |.......M|OVE.W..4|
|00004340| 28 41 31 29 2c 44 30 09 | 09 09 09 09 3b 20 67 65 |(A1),D0.|....; ge|
|00004350| 74 20 65 76 74 4d 65 73 | 73 61 67 65 20 28 6c 6f |t evtMes|sage (lo|
|00004360| 77 20 77 6f 72 64 29 0d | 09 09 09 09 09 3b 20 63 |w word).|.....; c|
|00004370| 68 65 63 6b 20 74 68 65 | 20 63 68 61 72 61 63 74 |heck the| charact|
|00004380| 65 72 20 63 6f 64 65 2c | 20 4e 4f 54 20 74 68 65 |er code,| NOT the|
|00004390| 20 6b 65 79 20 63 6f 64 | 65 21 0d 09 09 09 09 09 | key cod|e!......|
|000043a0| 43 4d 50 49 2e 42 09 09 | 23 33 2c 44 30 09 09 09 |CMPI.B..|#3,D0...|
|000043b0| 09 09 09 09 3b 20 45 6e | 74 65 72 20 63 68 61 72 |....; En|ter char|
|000043c0| 61 63 74 65 72 3f 0d 09 | 09 09 09 09 42 45 51 2e |acter?..|....BEQ.|
|000043d0| 53 09 09 09 73 65 74 49 | 74 65 6d 48 69 74 0d 0d |S...setI|temHit..|
|000043e0| 09 09 09 09 09 43 4d 50 | 49 2e 42 09 09 23 31 33 |.....CMP|I.B..#13|
|000043f0| 2c 44 30 09 09 09 09 09 | 09 3b 20 52 65 74 75 72 |,D0.....|.; Retur|
|00004400| 6e 20 63 68 61 72 61 63 | 74 65 72 3f 0d 09 09 09 |n charac|ter?....|
|00004410| 09 09 42 4e 45 2e 53 09 | 09 09 6e 6f 4b 65 79 45 |..BNE.S.|..noKeyE|
|00004420| 76 65 6e 74 0d 0d 09 09 | 73 65 74 49 74 65 6d 48 |vent....|setItemH|
|00004430| 69 74 3a 0d 09 09 09 09 | 09 4d 4f 56 45 2e 57 09 |it:.....|.MOVE.W.|
|00004440| 09 23 31 2c 28 41 30 29 | 09 09 09 09 09 09 3b 20 |.#1,(A0)|......; |
|00004450| 66 69 72 73 74 20 69 74 | 65 6d 20 69 73 20 68 69 |first it|em is hi|
|00004460| 74 0d 09 09 09 09 09 4d | 4f 56 45 2e 57 09 09 23 |t......M|OVE.W..#|
|00004470| 24 30 31 30 30 2c 34 28 | 53 50 29 09 09 09 3b 20 |$0100,4(|SP)...; |
|00004480| 72 65 73 75 6c 74 20 69 | 73 20 54 52 55 45 20 28 |result i|s TRUE (|
|00004490| 68 69 67 68 20 62 79 74 | 65 29 0d 09 09 09 09 09 |high byt|e)......|
|000044a0| 52 54 53 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |RTS.....|........|
|000044b0| 3b 20 73 6b 69 70 20 64 | 72 61 77 44 69 73 70 61 |; skip d|rawDispa|
|000044c0| 6c 79 28 29 0d 0d 09 09 | 6e 6f 4b 65 79 45 76 65 |ly()....|noKeyEve|
|000044d0| 6e 74 3a 0d 09 09 09 09 | 09 43 4c 52 2e 57 09 09 |nt:.....|.CLR.W..|
|000044e0| 09 34 28 53 50 29 09 09 | 09 09 09 09 09 3b 20 72 |.4(SP)..|.....; r|
|000044f0| 65 73 75 6c 74 20 69 73 | 20 46 41 4c 53 45 0d 09 |esult is| FALSE..|
|00004500| 09 09 09 09 4d 4f 56 45 | 4d 2e 4c 09 09 44 33 2d |....MOVE|M.L..D3-|
|00004510| 44 37 2f 41 33 2d 41 34 | 2c 2d 28 53 50 29 09 3b |D7/A3-A4|,-(SP).;|
|00004520| 20 73 61 76 65 20 72 65 | 67 69 73 74 65 72 73 0d | save re|gisters.|
|00004530| 09 09 09 09 09 4a 53 52 | 09 09 09 09 64 72 61 77 |.....JSR|....draw|
|00004540| 44 69 73 70 6c 61 79 09 | 09 09 09 3b 20 64 6f 20 |Display.|...; do |
|00004550| 62 61 63 6b 67 72 6f 75 | 6e 64 20 74 61 73 6b 0d |backgrou|nd task.|
|00004560| 09 09 09 09 09 4d 4f 56 | 45 4d 2e 4c 09 09 28 53 |.....MOV|EM.L..(S|
|00004570| 50 29 2b 2c 44 33 2d 44 | 37 2f 41 33 2d 41 34 20 |P)+,D3-D|7/A3-A4 |
|00004580| 3b 20 72 65 73 74 6f 72 | 65 20 72 65 67 69 73 74 |; restor|e regist|
|00004590| 65 72 73 0d 09 09 09 09 | 09 3b 20 52 54 53 20 69 |ers.....|.; RTS i|
|000045a0| 73 20 69 6e 73 65 72 74 | 65 64 20 62 79 20 74 68 |s insert|ed by th|
|000045b0| 65 20 63 6f 6d 70 69 6c | 65 72 20 61 66 74 65 72 |e compil|er after|
|000045c0| 20 22 7d 22 0d 09 23 65 | 6e 64 61 73 6d 0d 09 7d | "}"..#e|ndasm..}|
|000045d0| 0d 0d 2f 2a 0d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |../*.---|--------|
|000045e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004620| 2d 2d 2d 2d 2d 0d 44 52 | 41 57 20 43 4c 4f 43 4b |-----.DR|AW CLOCK|
|00004630| 20 44 49 53 50 4c 41 59 | 0d 53 65 74 74 69 6e 67 | DISPLAY|.Setting|
|00004640| 20 74 68 65 20 70 6f 72 | 74 20 74 6f 20 74 68 65 | the por|t to the|
|00004650| 20 63 6c 6f 63 6b 20 64 | 69 61 6c 6f 67 20 69 73 | clock d|ialog is|
|00004660| 20 64 6f 6e 65 20 68 65 | 72 65 20 72 61 74 68 65 | done he|re rathe|
|00004670| 72 20 74 68 61 6e 20 69 | 6e 20 63 6f 6e 74 72 6f |r than i|n contro|
|00004680| 6c 28 29 2c 0d 62 65 63 | 61 75 73 65 20 74 68 69 |l(),.bec|ause thi|
|00004690| 73 20 66 75 6e 63 74 69 | 6f 6e 20 69 73 20 61 6c |s functi|on is al|
|000046a0| 73 6f 20 63 61 6c 6c 65 | 64 20 62 79 20 64 6f 4d |so calle|d by doM|
|000046b0| 6f 64 61 6c 28 29 2e 20 | 48 6f 77 65 76 65 72 2c |odal(). |However,|
|000046c0| 20 65 76 65 72 79 74 68 | 69 6e 67 20 73 65 65 6d | everyth|ing seem|
|000046d0| 73 20 74 6f 0d 77 6f 72 | 6b 20 70 72 6f 70 65 72 |s to.wor|k proper|
|000046e0| 6c 79 20 69 66 20 74 68 | 65 20 70 6f 72 74 20 69 |ly if th|e port i|
|000046f0| 73 20 73 65 74 20 6f 6e | 6c 79 20 69 6e 20 63 6f |s set on|ly in co|
|00004700| 6e 74 72 6f 6c 28 29 20 | 61 6e 64 20 6e 6f 74 20 |ntrol() |and not |
|00004710| 68 65 72 65 2e 20 53 65 | 74 74 69 6e 67 20 74 68 |here. Se|tting th|
|00004720| 65 0d 70 6f 72 74 20 68 | 65 72 65 20 69 73 20 6a |e.port h|ere is j|
|00004730| 75 73 74 20 61 20 67 6f | 6f 64 20 69 64 65 61 2e |ust a go|od idea.|
|00004740| 20 47 65 74 74 69 6e 67 | 20 61 6e 64 20 72 65 73 | Getting| and res|
|00004750| 74 6f 72 69 6e 67 20 74 | 68 65 20 6f 6c 64 20 70 |toring t|he old p|
|00004760| 6f 72 74 20 69 73 20 61 | 6c 73 6f 20 61 20 67 6f |ort is a|lso a go|
|00004770| 6f 64 0d 69 64 65 61 2c | 20 68 6f 77 65 76 65 72 |od.idea,| however|
|00004780| 20 65 76 65 72 79 74 68 | 69 6e 67 20 73 65 65 6d | everyth|ing seem|
|00004790| 73 20 74 6f 20 77 6f 72 | 6b 20 70 72 6f 70 65 72 |s to wor|k proper|
|000047a0| 6c 79 20 69 66 20 74 68 | 69 73 20 69 73 20 6e 6f |ly if th|is is no|
|000047b0| 74 20 64 6f 6e 65 20 65 | 69 74 68 65 72 2e 0d 0d |t done e|ither...|
|000047c0| 54 68 65 20 63 75 72 72 | 65 6e 74 20 74 69 6d 65 |The curr|ent time|
|000047d0| 20 69 73 20 66 65 74 63 | 68 65 64 20 66 72 6f 6d | is fetc|hed from|
|000047e0| 20 74 68 65 20 6c 6f 77 | 2d 6d 65 6d 6f 72 79 20 | the low|-memory |
|000047f0| 73 79 73 74 65 6d 20 67 | 6c 6f 62 61 6c 20 22 54 |system g|lobal "T|
|00004800| 69 6d 65 22 20 28 24 30 | 32 30 43 29 0d 75 73 69 |ime" ($0|20C).usi|
|00004810| 6e 67 20 43 20 74 79 70 | 65 63 61 73 74 69 6e 67 |ng C typ|ecasting|
|00004820| 20 61 6e 64 20 69 6e 64 | 69 72 65 63 74 69 6f 6e | and ind|irection|
|00004830| 2e 20 53 69 6e 63 65 20 | 74 68 65 20 63 75 72 72 |. Since |the curr|
|00004840| 65 6e 74 20 74 69 6d 65 | 20 69 73 20 6e 6f 74 20 |ent time| is not |
|00004850| 6e 65 65 64 65 64 20 69 | 6e 0d 6d 61 6e 79 20 64 |needed i|n.many d|
|00004860| 69 66 66 65 72 65 6e 74 | 20 70 6c 61 63 65 73 20 |ifferent| places |
|00004870| 69 6e 20 74 68 69 73 20 | 73 6f 75 72 63 65 2c 20 |in this |source, |
|00004880| 74 68 69 73 20 74 65 63 | 68 6e 69 71 75 65 20 69 |this tec|hnique i|
|00004890| 73 20 66 61 73 74 65 72 | 20 61 6e 64 20 74 61 6b |s faster| and tak|
|000048a0| 65 73 20 6c 65 73 73 0d | 63 6f 64 65 20 74 68 61 |es less.|code tha|
|000048b0| 6e 20 77 72 69 74 69 6e | 67 20 61 6e 20 61 73 73 |n writin|g an ass|
|000048c0| 65 6d 62 6c 79 20 6c 61 | 6e 67 75 61 67 65 20 66 |embly la|nguage f|
|000048d0| 75 6e 63 74 69 6f 6e 2e | 20 41 6c 73 6f 20 74 68 |unction.| Also th|
|000048e0| 65 72 65 27 73 20 6e 6f | 20 65 71 75 69 76 61 6c |ere's no| equival|
|000048f0| 65 6e 74 0d 69 6e 20 4d | 61 63 20 43 20 74 6f 20 |ent.in M|ac C to |
|00004900| 74 68 65 20 4c 69 73 61 | 20 50 61 73 63 61 6c 20 |the Lisa| Pascal |
|00004910| 72 6f 75 74 69 6e 65 3a | 0d 09 50 52 4f 43 45 44 |routine:|..PROCED|
|00004920| 55 52 45 20 47 65 74 44 | 61 74 65 54 69 6d 65 28 |URE GetD|ateTime(|
|00004930| 56 41 52 20 73 65 63 73 | 3a 20 4c 4f 4e 47 49 4e |VAR secs|: LONGIN|
|00004940| 54 29 3b 0d 0d 48 6f 77 | 65 76 65 72 2c 20 61 20 |T);..How|ever, a |
|00004950| 66 75 6e 63 74 69 6f 6e | 20 63 61 6e 20 62 65 20 |function| can be |
|00004960| 64 65 66 69 6e 65 64 20 | 73 69 6d 69 6c 61 72 20 |defined |similar |
|00004970| 74 6f 20 74 68 69 73 20 | 70 72 6f 63 65 64 75 72 |to this |procedur|
|00004980| 65 20 62 75 74 20 72 65 | 74 75 72 6e 69 6e 67 20 |e but re|turning |
|00004990| 61 0d 6c 6f 6e 67 20 72 | 65 73 75 6c 74 2c 20 72 |a.long r|esult, r|
|000049a0| 61 74 68 65 72 20 74 68 | 61 6e 20 68 61 76 69 6e |ather th|an havin|
|000049b0| 67 20 61 20 76 61 72 69 | 61 62 6c 65 20 70 61 73 |g a vari|able pas|
|000049c0| 73 65 64 20 74 6f 20 69 | 74 3a 0d 0d 6c 6f 6e 67 |sed to i|t:..long|
|000049d0| 20 67 65 74 44 61 74 65 | 54 69 6d 65 28 29 0d 09 | getDate|Time()..|
|000049e0| 7b 0d 0d 09 23 61 73 6d | 0d 09 09 09 09 09 4d 4f |{...#asm|......MO|
|000049f0| 56 45 2e 4c 09 09 24 30 | 32 30 43 2c 44 30 09 09 |VE.L..$0|20C,D0..|
|00004a00| 09 09 09 3b 20 54 69 6d | 65 0d 09 09 09 09 09 3b |...; Tim|e......;|
|00004a10| 20 52 54 53 20 69 73 20 | 69 6e 73 65 72 74 65 64 | RTS is |inserted|
|00004a20| 20 62 79 20 74 68 65 20 | 63 6f 6d 70 69 6c 65 72 | by the |compiler|
|00004a30| 20 61 66 74 65 72 20 22 | 7d 22 0d 09 23 65 6e 64 | after "|}"..#end|
|00004a40| 61 73 6d 0d 09 7d 0d 0d | 54 68 65 20 6f 6e 6c 79 |asm..}..|The only|
|00004a50| 20 6f 74 68 65 72 20 66 | 75 6e 63 74 69 6f 6e 20 | other f|unction |
|00004a60| 69 6e 20 74 68 69 73 20 | 73 6f 75 72 63 65 20 77 |in this |source w|
|00004a70| 68 69 63 68 20 72 65 71 | 75 65 73 74 73 20 74 68 |hich req|uests th|
|00004a80| 65 20 63 75 72 72 65 6e | 74 20 74 69 6d 65 20 69 |e curren|t time i|
|00004a90| 73 0d 64 54 69 6d 65 54 | 6f 53 74 72 69 6e 67 28 |s.dTimeT|oString(|
|00004aa0| 29 2e 20 2a 2f 0d 0d 64 | 72 61 77 44 69 73 70 6c |). */..d|rawDispl|
|00004ab0| 61 79 28 29 0d 09 7b 0d | 09 47 72 61 66 50 74 72 |ay()..{.|.GrafPtr|
|00004ac0| 20 6f 6c 64 50 6f 72 74 | 3b 0d 09 6c 6f 6e 67 20 | oldPort|;..long |
|00004ad0| 6e 65 77 44 61 74 65 54 | 69 6d 65 3b 0d 09 53 74 |newDateT|ime;..St|
|00004ae0| 72 32 35 35 20 6e 65 77 | 44 54 53 74 72 69 6e 67 |r255 new|DTString|
|00004af0| 3b 0d 09 73 68 6f 72 74 | 20 6e 65 77 57 69 64 74 |;..short| newWidt|
|00004b00| 68 3b 0d 0d 09 69 66 20 | 28 28 63 6c 6f 63 6b 44 |h;...if |((clockD|
|00004b10| 69 72 74 79 29 20 7c 7c | 20 28 28 6e 65 77 44 61 |irty) ||| ((newDa|
|00004b20| 74 65 54 69 6d 65 20 3d | 20 2a 28 28 6c 6f 6e 67 |teTime =| *((long|
|00004b30| 20 2a 29 20 54 49 4d 45 | 29 29 20 21 3d 20 6f 6c | *) TIME|)) != ol|
|00004b40| 64 44 61 74 65 54 69 6d | 65 29 29 0d 09 09 7b 0d |dDateTim|e))...{.|
|00004b50| 09 09 47 65 74 50 6f 72 | 74 28 26 6f 6c 64 50 6f |..GetPor|t(&oldPo|
|00004b60| 72 74 29 3b 0d 09 09 53 | 65 74 50 6f 72 74 28 28 |rt);...S|etPort((|
|00004b70| 47 72 61 66 50 74 72 29 | 20 63 6c 6f 63 6b 44 69 |GrafPtr)| clockDi|
|00004b80| 61 6c 6f 67 29 3b 0d 0d | 09 09 6f 6c 64 44 61 74 |alog);..|..oldDat|
|00004b90| 65 54 69 6d 65 20 3d 20 | 6e 65 77 44 61 74 65 54 |eTime = |newDateT|
|00004ba0| 69 6d 65 3b 0d 09 09 64 | 54 69 6d 65 54 6f 53 74 |ime;...d|TimeToSt|
|00004bb0| 72 69 6e 67 28 63 6c 6f | 63 6b 46 6f 72 6d 61 74 |ring(clo|ckFormat|
|00004bc0| 2c 20 26 6e 65 77 44 54 | 53 74 72 69 6e 67 2c 20 |, &newDT|String, |
|00004bd0| 63 6c 6f 63 6b 53 65 6c | 65 63 74 69 6f 6e 29 3b |clockSel|ection);|
|00004be0| 0d 09 09 69 66 20 28 28 | 63 6c 6f 63 6b 44 69 72 |...if ((|clockDir|
|00004bf0| 74 79 29 20 7c 7c 20 28 | 28 6e 65 77 57 69 64 74 |ty) || (|(newWidt|
|00004c00| 68 20 3d 20 53 74 72 69 | 6e 67 57 69 64 74 68 28 |h = Stri|ngWidth(|
|00004c10| 26 6e 65 77 44 54 53 74 | 72 69 6e 67 29 29 20 3c |&newDTSt|ring)) <|
|00004c20| 20 6f 6c 64 57 69 64 74 | 68 29 29 0d 09 09 09 7b | oldWidt|h))....{|
|00004c30| 0d 09 09 09 6f 6c 64 57 | 69 64 74 68 20 3d 20 6e |....oldW|idth = n|
|00004c40| 65 77 57 69 64 74 68 3b | 0d 09 09 09 45 72 61 73 |ewWidth;|....Eras|
|00004c50| 65 52 65 63 74 28 26 64 | 69 73 70 6c 61 79 52 65 |eRect(&d|isplayRe|
|00004c60| 63 74 29 3b 0d 09 09 09 | 63 6c 6f 63 6b 44 69 72 |ct);....|clockDir|
|00004c70| 74 79 20 3d 20 46 41 4c | 53 45 3b 0d 09 09 09 7d |ty = FAL|SE;....}|
|00004c80| 0d 09 09 4d 6f 76 65 54 | 6f 28 74 65 78 74 4c 65 |...MoveT|o(textLe|
|00004c90| 66 74 2c 74 65 78 74 42 | 61 73 65 29 3b 0d 09 09 |ft,textB|ase);...|
|00004ca0| 44 72 61 77 53 74 72 69 | 6e 67 28 26 6e 65 77 44 |DrawStri|ng(&newD|
|00004cb0| 54 53 74 72 69 6e 67 29 | 3b 0d 0d 09 09 53 65 74 |TString)|;....Set|
|00004cc0| 50 6f 72 74 28 6f 6c 64 | 50 6f 72 74 29 3b 0d 09 |Port(old|Port);..|
|00004cd0| 09 7d 0d 09 7d 0d 0d 2f | 2a 0d 2d 2d 2d 2d 2d 2d |.}..}../|*.------|
|00004ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 43 4f 4e 56 45 |--------|--.CONVE|
|00004d30| 52 54 20 44 41 54 45 20 | 4f 52 20 54 49 4d 45 20 |RT DATE |OR TIME |
|00004d40| 54 4f 20 53 54 52 49 4e | 47 0d 54 68 69 73 20 69 |TO STRIN|G.This i|
|00004d50| 73 20 61 20 76 61 72 69 | 61 74 69 6f 6e 20 6f 6e |s a vari|ation on|
|00004d60| 20 74 77 6f 20 4c 69 73 | 61 20 50 61 63 61 6c 20 | two Lis|a Pacal |
|00004d70| 70 72 6f 63 65 64 75 72 | 65 73 20 63 6f 6e 74 61 |procedur|es conta|
|00004d80| 69 6e 65 64 20 69 6e 20 | 74 68 65 20 69 6e 74 65 |ined in |the inte|
|00004d90| 72 6e 61 74 69 6f 6e 61 | 6c 0d 75 74 69 6c 69 74 |rnationa|l.utilit|
|00004da0| 69 65 73 20 70 61 63 6b | 61 67 65 2e 20 54 68 65 |ies pack|age. The|
|00004db0| 72 65 27 73 20 6e 6f 20 | 65 71 75 69 76 61 6c 65 |re's no |equivale|
|00004dc0| 6e 74 20 74 6f 20 74 68 | 65 73 65 20 70 72 6f 63 |nt to th|ese proc|
|00004dd0| 65 64 75 72 65 73 20 69 | 6e 20 4d 61 63 20 43 2e |edures i|n Mac C.|
|00004de0| 20 48 65 72 65 20 74 68 | 65 0d 64 61 74 65 54 69 | Here th|e.dateTi|
|00004df0| 6d 65 20 70 61 72 61 6d | 65 74 65 72 20 69 73 20 |me param|eter is |
|00004e00| 6e 6f 74 20 75 73 65 64 | 2e 20 49 6e 73 74 65 61 |not used|. Instea|
|00004e10| 64 2c 20 74 68 65 20 63 | 75 72 72 65 6e 74 20 74 |d, the c|urrent t|
|00004e20| 69 6d 65 20 69 73 20 66 | 65 74 63 68 65 64 20 61 |ime is f|etched a|
|00004e30| 6e 64 20 70 6c 61 63 65 | 64 0d 6f 6e 20 74 68 65 |nd place|d.on the|
|00004e40| 20 73 74 61 63 6b 2e 0d | 0d 54 68 65 20 66 69 72 | stack..|.The fir|
|00004e50| 73 74 20 70 61 72 61 6d | 65 74 65 72 20 64 65 74 |st param|eter det|
|00004e60| 65 72 6d 69 6e 65 73 20 | 74 68 65 20 66 6f 72 6d |ermines |the form|
|00004e70| 61 74 20 6f 66 20 74 68 | 65 20 6f 75 74 70 75 74 |at of th|e output|
|00004e80| 2e 20 54 68 69 73 20 69 | 73 20 65 69 74 68 65 72 |. This i|s either|
|00004e90| 20 74 68 65 0d 63 6f 6e | 73 74 61 6e 74 73 20 57 | the.con|stants W|
|00004ea0| 41 4e 54 5f 53 45 43 4f | 4e 44 53 20 6f 72 20 46 |ANT_SECO|NDS or F|
|00004eb0| 41 4c 53 45 20 66 6f 72 | 20 74 69 6d 65 3b 20 6f |ALSE for| time; o|
|00004ec0| 72 20 73 68 6f 72 74 44 | 61 74 65 2c 20 6c 6f 6e |r shortD|ate, lon|
|00004ed0| 67 44 61 74 65 20 6f 72 | 20 6d 65 64 44 61 74 65 |gDate or| medDate|
|00004ee0| 2c 20 66 6f 72 0d 74 68 | 65 20 64 61 74 65 2e 0d |, for.th|e date..|
|00004ef0| 0d 57 41 4e 54 5f 53 45 | 43 4f 4e 44 53 20 69 73 |.WANT_SE|CONDS is|
|00004f00| 20 64 65 66 69 6e 65 64 | 20 61 73 20 24 30 31 30 | defined| as $010|
|00004f10| 30 20 62 65 63 61 75 73 | 65 20 69 74 20 69 73 20 |0 becaus|e it is |
|00004f20| 61 20 62 6f 6f 6c 65 61 | 6e 20 54 52 55 45 2c 20 |a boolea|n TRUE, |
|00004f30| 61 6e 64 20 74 68 65 72 | 65 66 6f 72 65 20 62 69 |and ther|efore bi|
|00004f40| 74 0d 31 20 6f 66 20 74 | 68 65 20 68 69 67 68 20 |t.1 of t|he high |
|00004f50| 62 79 74 65 20 6d 75 73 | 74 20 62 65 20 73 65 74 |byte mus|t be set|
|00004f60| 2e 20 41 63 74 75 61 6c | 6c 79 20 61 6e 79 20 62 |. Actual|ly any b|
|00004f70| 69 74 20 73 65 74 20 69 | 6e 20 74 68 65 20 68 69 |it set i|n the hi|
|00004f80| 67 68 20 62 79 74 65 20 | 77 69 6c 6c 20 77 6f 72 |gh byte |will wor|
|00004f90| 6b 0d 62 75 74 20 73 65 | 74 74 69 6e 67 20 62 69 |k.but se|tting bi|
|00004fa0| 74 20 31 20 69 73 20 74 | 68 65 20 70 72 6f 70 65 |t 1 is t|he prope|
|00004fb0| 72 20 6d 65 74 68 6f 64 | 2e 0d 0d 41 20 70 6f 69 |r method|...A poi|
|00004fc0| 6e 74 65 72 20 74 6f 20 | 74 68 65 20 73 74 72 69 |nter to |the stri|
|00004fd0| 6e 67 20 77 68 69 63 68 | 20 77 69 6c 6c 20 63 6f |ng which| will co|
|00004fe0| 6e 74 61 69 6e 20 74 68 | 65 20 74 69 6d 65 20 6f |ntain th|e time o|
|00004ff0| 72 20 64 61 74 65 20 63 | 68 61 72 61 63 74 65 72 |r date c|haracter|
|00005000| 73 20 69 73 20 74 68 65 | 0d 73 65 63 6f 6e 64 20 |s is the|.second |
|00005010| 70 61 72 61 6d 65 74 65 | 72 2e 0d 0d 54 68 65 20 |paramete|r...The |
|00005020| 74 68 69 72 64 20 70 61 | 72 61 6d 65 74 65 72 20 |third pa|rameter |
|00005030| 69 73 20 74 68 65 20 73 | 65 6c 65 63 74 6f 72 20 |is the s|elector |
|00005040| 66 6f 72 20 74 68 65 20 | 50 61 63 6b 36 20 74 72 |for the |Pack6 tr|
|00005050| 61 70 2c 20 65 69 74 68 | 65 72 20 54 49 4d 45 5f |ap, eith|er TIME_|
|00005060| 53 45 4c 45 43 54 49 4f | 4e 20 6f 72 0d 44 41 54 |SELECTIO|N or.DAT|
|00005070| 45 5f 53 45 4c 45 43 54 | 49 4f 4e 2e 0d 0d 54 68 |E_SELECT|ION...Th|
|00005080| 65 20 4c 69 73 61 20 50 | 61 73 63 61 6c 20 66 6f |e Lisa P|ascal fo|
|00005090| 72 6d 61 74 20 66 6f 72 | 20 74 68 65 20 6f 72 69 |rmat for| the ori|
|000050a0| 67 69 6e 61 6c 20 74 77 | 6f 20 72 6f 75 74 69 6e |ginal tw|o routin|
|000050b0| 65 73 20 69 73 3a 0d 09 | 50 52 4f 43 45 44 55 52 |es is:..|PROCEDUR|
|000050c0| 45 20 49 55 44 61 74 65 | 53 74 72 69 6e 67 28 64 |E IUDate|String(d|
|000050d0| 61 74 65 54 69 6d 65 3a | 20 4c 4f 4e 47 49 4e 54 |ateTime:| LONGINT|
|000050e0| 3b 20 66 6f 72 6d 3a 20 | 44 61 74 65 46 6f 72 6d |; form: |DateForm|
|000050f0| 3b 20 56 41 52 20 72 65 | 73 75 6c 74 3a 20 53 74 |; VAR re|sult: St|
|00005100| 72 32 35 35 29 3b 0d 09 | 50 52 4f 43 45 44 55 52 |r255);..|PROCEDUR|
|00005110| 45 20 49 55 54 69 6d 65 | 53 74 72 69 6e 67 28 64 |E IUTime|String(d|
|00005120| 61 74 65 54 69 6d 65 3a | 20 4c 4f 4e 47 49 4e 54 |ateTime:| LONGINT|
|00005130| 3b 20 77 61 6e 74 53 65 | 63 6f 6e 64 73 3a 20 42 |; wantSe|conds: B|
|00005140| 4f 4f 4c 45 41 4e 3b 0d | 09 09 09 09 09 09 09 09 |OOLEAN;.|........|
|00005150| 56 41 52 20 72 65 73 75 | 6c 74 3a 20 53 74 72 32 |VAR resu|lt: Str2|
|00005160| 35 35 29 3b 20 2a 2f 0d | 0d 64 54 69 6d 65 54 6f |55); */.|.dTimeTo|
|00005170| 53 74 72 69 6e 67 28 74 | 68 65 46 6f 72 6d 61 74 |String(t|heFormat|
|00005180| 2c 20 74 68 65 53 74 72 | 2c 20 74 68 65 53 65 6c |, theStr|, theSel|
|00005190| 65 63 74 6f 72 29 0d 09 | 73 68 6f 72 74 20 74 68 |ector)..|short th|
|000051a0| 65 46 6f 72 6d 61 74 3b | 0d 09 53 74 72 32 35 35 |eFormat;|..Str255|
|000051b0| 20 2a 74 68 65 53 74 72 | 3b 0d 09 73 68 6f 72 74 | *theStr|;..short|
|000051c0| 20 74 68 65 53 65 6c 65 | 63 74 6f 72 3b 0d 09 7b | theSele|ctor;..{|
|000051d0| 0d 0d 09 23 61 73 6d 0d | 09 09 09 09 09 4d 4f 56 |...#asm.|.....MOV|
|000051e0| 45 2e 4c 09 09 24 30 32 | 30 43 2c 2d 28 53 50 29 |E.L..$02|0C,-(SP)|
|000051f0| 09 09 09 09 3b 20 54 69 | 6d 65 0d 09 09 09 09 09 |....; Ti|me......|
|00005200| 4d 4f 56 45 2e 57 09 09 | 44 30 2c 2d 28 53 50 29 |MOVE.W..|D0,-(SP)|
|00005210| 09 09 09 09 09 3b 20 77 | 61 6e 74 53 65 63 6f 6e |.....; w|antSecon|
|00005220| 64 73 20 6f 72 20 64 61 | 74 65 46 6f 72 6d 0d 09 |ds or da|teForm..|
|00005230| 09 09 09 09 4d 4f 56 45 | 2e 4c 09 09 44 31 2c 2d |....MOVE|.L..D1,-|
|00005240| 28 53 50 29 09 09 09 09 | 09 3b 20 74 68 65 53 74 |(SP)....|.; theSt|
|00005250| 72 0d 09 09 09 09 09 4d | 4f 56 45 2e 57 09 09 44 |r......M|OVE.W..D|
|00005260| 32 2c 2d 28 53 50 29 09 | 09 09 09 09 3b 20 72 6f |2,-(SP).|....; ro|
|00005270| 75 74 69 6e 65 20 73 65 | 6c 65 63 74 6f 72 0d 09 |utine se|lector..|
|00005280| 09 09 09 09 44 43 2e 57 | 09 09 09 24 41 39 45 44 |....DC.W|...$A9ED|
|00005290| 09 09 09 09 09 09 09 3b | 20 5f 50 61 63 6b 36 0d |.......;| _Pack6.|
|000052a0| 09 09 09 09 09 3b 20 52 | 54 53 20 69 73 20 69 6e |.....; R|TS is in|
|000052b0| 73 65 72 74 65 64 20 62 | 79 20 74 68 65 20 63 6f |serted b|y the co|
|000052c0| 6d 70 69 6c 65 72 20 61 | 66 74 65 72 20 22 7d 22 |mpiler a|fter "}"|
|000052d0| 0d 09 23 65 6e 64 61 73 | 6d 0d 09 7d 0d 00 00 00 |..#endas|m..}....|
|000052e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000052f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005300| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 46 |........|.......F|
|00005310| 6b 47 72 61 79 00 bb 14 | 04 5f 5f 50 00 04 6c 74 |kGray...|.__P..lt|
|00005320| 47 72 61 79 00 bb 14 04 | 5f 5f 50 00 04 67 72 61 |Gray....|__P..gra|
|00005330| 07 43 6c 6f 63 6b 2e 63 | 02 00 00 00 54 45 58 54 |.Clock.c|....TEXT|
|00005340| 45 44 49 54 01 00 00 00 | 00 00 00 00 00 01 ab c5 |EDIT....|........|
|00005350| 00 00 54 45 58 54 45 44 | 49 54 01 00 00 00 00 00 |..TEXTED|IT......|
|00005360| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005370| 00 00 9a 6b 0d 7d 00 00 | 52 5d 00 00 01 5c 43 4c |...k.}..|R]...\CL|
|00005380| 4f 43 4b 2e 43 00 37 00 | 00 04 e6 38 01 3a 00 00 |OCK.C.7.|...8.:..|
|00005390| 00 01 3b 44 45 56 45 4c | 4f 50 4d 45 4e 54 3a 57 |..;DEVEL|OPMENT:W|
|000053a0| 49 4e 44 4f 57 2e 48 00 | 37 00 00 00 00 14 04 5f |INDOW.H.|7......_|
|000053b0| 5f 57 52 00 fb 14 04 5f | 5f 47 50 00 04 70 6f 72 |_WR...._|_GP..por|
|000053c0| 74 00 bb 0a 04 77 69 6e | 64 6f 77 4b 69 6e 64 00 |t....win|dowKind.|
|000053d0| bb 09 04 76 69 73 69 62 | 6c 65 00 bb 09 04 68 69 |...visib|le....hi|
|000053e0| 6c 69 74 65 64 00 bb 09 | 04 67 6f 41 77 61 79 46 |lited...|.goAwayF|
|000053f0| 6c 61 67 00 bb 09 04 73 | 70 61 72 65 46 6c 61 67 |lag....s|pareFlag|
|00005400| 00 00 00 0a 00 09 06 4d | 6f 6e 61 63 6f 34 00 00 |.......M|onaco4..|
|00005410| 00 04 00 06 00 02 00 00 | 01 00 00 00 01 16 00 00 |........|........|
|00005420| 00 16 00 00 00 46 00 00 | cc 18 02 36 00 00 00 1c |.....F..|...6....|
|00005430| 00 46 00 01 45 46 4e 54 | 00 00 00 12 45 54 41 42 |.F..EFNT|....ETAB|
|00005440| 00 00 00 1e 03 eb ff ff | 00 00 00 00 00 01 60 d4 |........|......`.|
|00005450| 03 ec ff ff 00 00 00 0e | 00 01 60 f0 00 00 00 00 |........|..`.....|
|00005460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005470| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+